MYSQL用法(十二) Can't connect to MySQL server on 解决方案

本文详细解析了MySQL连接过程中常见的错误代码及其解决方案,包括错误2003、10061、10055及10060等,涉及服务启动状态检查、防火墙配置、最大连接数调整等方面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一  错误编号:2003

1.1 问题分析:无法连接到 mysql 服务器,可能的情况为:

1、mysql 服务没有启动,一般是在异常的情况下 mysql 无法启动导致的,比如无可用的磁盘空间,my.ini 里 mysql 的 basedir 路径设置错误等;

2、mysql 服务器资源紧张,导致无法连接。

1.2 解决方法:

1、如果你是虚拟主机用户(购买的空间),则联系空间商检查 mysql 是否正常启动,并确认 mysql 的配置信息(是否为 localhost);

2、如果你是独立主机用户(拥有管理主机权限),则按下面步骤检查:

1)检查是否启动了 mysql 服务。

如: windows系统的话,右键点击我的电脑,单击管理,在服务和应用程序中找到mysql 服务,看是否是已启动的状态。

二 mysql出现10061错误解决办法
如果出现"error 2003: can't connect to mysql server on 'localhost'(10061)", 说明你的mysql还没有启动。

解决办法:(windows系统)在服务中,启动mysql服务

三 can't connect to mysql server on 'localhost' (10055)

解决方案:

1 建议修改最大连接数,或者把 mysql_connect() 方法都改成了mysql_pconnect() 方法, 

2 治标,封锁这些ip,一个ip连接大于3的就有点不正常, 

3 治本,修改站点程序,严禁刷新太快!

4. 链接数的修改:此错误与一个注册表键值tcptimedwaitdelay有关。减小windows中tcptimedwaitdelay时间可解决此类问题,

默认情况下为240(未设置的情况下也是这个数值)。此项设置需要到注册表如下位置进行设置:

[hkey_local_machine][system] [currentcontrolset] [services] [tcpip] [parameters]

[tcptimedwaitdelay]如果注册表中没有tcptimedwaitdelay这个项目,

请增加这个项目,并设置为双字节(dword)类型。数值设置为30 60 之间即可。

四 can't connect to mysql server on 'localhost' (10060)

4.1 服务器端的操作系统是windowsxp sp2,自带的防火墙中打开3306(mysql的默认端口)端口

4.2 防火墙禁止3306端口,以iptable为例
vi /etc/sysconfig/iptables
-a rh-firewall-1-input -m state --state new -m tcp -p tcp --dport 3306-j

4.3 accept 
service iptables restart

4.4 iptables设置
1) 重启后生效 
开启: chkconfig iptables on 
关闭: chkconfig iptables off

2) 即时生效,重启后失效 
开启: service iptables start 
关闭: service iptables stop

示例一 MySQL错误:Can't connect to MySQL server (10060)


当远程连接MySQL数据库的时候显示Can't connect to MySQL server (10060),我们从以下几个方面入手,找出错误的原因:

1.网络不通。

检查能不能ping通。

2.防火墙设置。

防火墙是否放过mysql的进程,是否屏蔽了mysql的3306端口。

3.mysql的账户设置。

mysql账户是否不允许远程连接。如果无法连接可以尝试以下方法:


也可以通过修改表来实现远程:


其实错误的原因也不外乎以上几个方面,相信按照上面的思路找出原因,定能将问题解决掉。


### 解决方案 错误代码 `10061` 表示客户端无法连接到 MySQL 服务,通常是因为 MySQL 服务未启动或配置不正确。以下是可能的解决方案: #### 1. 检查 MySQL 服务是否已启动 确保 MySQL 服务正在运行。如果服务未启动,可以通过以下命令启动: ```cmd net start mysql ``` 如果服务未安装,则需要手动安装 MySQL 服务。以管理员身份打开 CMD,并执行以下命令[^4]: ```cmd mysqld -install ``` #### 2. 配置防火墙规则 检查系统防火墙是否阻止了 MySQL 的端口(默认为 3306)。如果防火墙阻止了该端口,可以添加一个入站规则以允许 MySQL 流量[^3]。 #### 3. 修改 MySQL 配置文件 MySQL 的配置文件通常是 `my.ini` 或 `my.cnf`,位于安装目录下。确保配置文件中包含以下内容: ```ini [mysqld] bind-address = 127.0.0.1 port = 3306 ``` 将 `bind-address` 设置为 `127.0.0.1` 可以限制 MySQL 仅监听本地连接[^5]。 #### 4. 初始化 MySQL 数据库 如果 MySQL 数据库未正确初始化,可能会导致连接问题。可以尝试重新初始化数据库: ```cmd mysqld --initialize --user=root --console ``` 初始化完成后,记录生成的临时密码,并使用该密码登录 MySQL[^5]。 #### 5. 检查端口占用情况 确认端口 3306 是否被其他程序占用。可以通过以下命令检查端口状态: ```cmd netstat -ano | findstr 3306 ``` 如果发现其他程序占用了该端口,可以修改 MySQL 的端口号或终止占用进程[^3]。 #### 6. 卸载并重新安装 MySQL 如果以上方法均无效,可以尝试卸载并重新安装 MySQL。确保在卸载时清除所有残留文件和注册表项[^4]。 --- ### 示例代码 以下是一个简单的 Python 脚本,用于测试 MySQL 连接: ```python import mysql.connector try: connection = mysql.connector.connect( host="localhost", user="root", password="your_password", database="test_db" ) if connection.is_connected(): print("Successfully connected to MySQL server") except mysql.connector.Error as err: print(f"Error: {err}") finally: if 'connection' in locals() and connection.is_connected(): connection.close() ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值