在连接到 mysql 数据库服务器时,有时会在客户端报出 2003 的错误代码,并提示: 无法连接到服务器,但服务器却可以 ping 通,可能的原因如下:
1.网络不通。
检查能不能ping通。
2.防火墙设置。
防火墙是否放过mysql的进程,是否屏蔽了mysql的3306端口。
3.mysql的账户设置。
mysql账户是否不允许远程连接。如果无法连接可以尝试以下方法:
mysql -u root -p //登录MySQL mysql> GRANT ALL PRIVILEGES ON *.* TO ‘root‘@‘%‘WITH GRANT OPTION; //任何远程主机都可以访问数据库 mysql> FLUSH PRIVILEGES; //需要输入次命令使修改生效 mysql> EXIT //退出
也可以通过修改表来实现远程:
mysql -u root -p mysql> use mysql; mysql> update user set host = ‘%‘ where user = ‘root‘; mysql> select host, user from user;
4. mysql数据库没有启动
这种情况也正是我遇到的,到windows服务选项里查看发现没有mysql数据库服务这个选项,记得刚开始安装mysql的时候是有的。所以这种情况下我重新安装了一下mysql数据库,windows服务里又有这个选项了,重新启动mysql数据库,可以正常连接和使用mysql数据库了。
5.MySQL 服务器资源紧张,导致无法连接
解决方法:
(1)、如果你是虚拟主机用户(购买的空间),则联系空间商检查 MySQL 是否正常启动,并确认 MySQL 的配置信息(是否为 localhost);
(2)、如果你是独立主机用户(拥有管理主机权限),则按下面步骤检查:
1)检查是否启动了 MySQL 服务。
Windows 主机的话,右键点击我的电脑,单击管理,在服务和应用程序中找到 MySQL 服务,看是否是已启动的状态。
如果出现"ERROR 2003: Can‘t connect to MySQL server on ‘localhost‘ (10061)", 说明你的MySQL还没有启动。
解决办法:
第一步
删除c:windowns下面的my.ini
第二步
打开c:mysqlbinwinmysqladmin.exe 输入用户名 和密码
第三步 在dos下 输入 mysqld-nt -remove 删除服务
在接着输入 mysqld-nt -install
第四步 输入mysql 启动成功
其实错误的原因也不外乎以上几个方面,相信按照上面的思路找出原因,定能将问题解决掉。也可以参考这里的问题集: http://database.51cto.com/mysql/