MySQL远程连接ERROR 2003 (HY000) Cant connect to MySQL server on (10060)

MySQL远程连接ERROR 2003 (HY000):Can't connect to MySQL server on'XXXXX'


(10060)的问题





D:\Users\xiaomaimiao>mysql -uroot -plhr -h192.168.59.159
Warning: Using a password on the command line interface can be insecure.
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.59.159' (10060)

原因:主机192.168.59.159上的防火墙未关闭
解决办法:关闭防火墙,以下2个命令都需要执行:
chkconfig iptables off   ---永久
service iptables stop    ---临时



问题描述:
 

从一台linux远程连接另一台linux上的MySQL, 出现ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx.xxx.xxx.85'(111)错误。

 

[mysql@vvmvcs0 ~]$ mysql -hxxx.xxx.xxx.85 -uroot -p

Enter password:  www.2cto.com  

ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx.xxx.xxx.85' (111)

[mysql@vvmvcs0 ~]$ perror 111

OS error code 111: Connection refused

查看errorCode

 

[mysql@vvmvcs0 ~]$ perror 111 

OS error code 111: Connection refused
 

问题分析:

1,可能网络连接问,远程ping xxx.xxx.xxx.85 ,能ping通,排除此情况

 

[mysql@vvmvcs0 ~]$ ping xxx.xxx.xxx.85 

PING xxx.xxx.xxx.85 (xxx.xxx.xxx.85) 56(84) bytes of data.

64 bytes from xxx.xxx.xxx.85: icmp_seq=1 ttl=63 time=0.230 ms

 

2,排查可能由于85上my.cnf里配置了skip_networking或者bind_address,只允许本地socket连接

2.1 在[mysqld]下设置skip_networking,

知识说明: 这使用MySQL只能通过本机Socket连接(socket连接也是本地连接的默认方式),放弃对TCP/IP的监听  www.2cto.com  

当然也不让本地java程序连接MySQL(Connector/J只能通过TCP/IP来连接)。

2.2 可能使用了bind_address=127.0.0.1(当然也可以是其他ip)

 

[mysqld] 

bind_address=127.0.0.1

知识说明:这种情况可以TCP/IP连接

通过查看了my.cnf文件,以上两个都是没设置的,排除掉这两种情况
 

3,排查DNS解析问题,检查是否设置了: skip_name_resolve。 这个情况肯定不可能,因为我用的是ip,不是主机名。

 

[mysqld]

skip_name_resolve

知识说明:这个参数加上后,不支持主机名的连接方式。
 

4, 排查用户和密码问题, 其实用户和密码的错误,不会出现111的,所以排除用户密码问题

ERROR 1045 (28000): Access denied for user 'root'@'XXXX' (using password: YES)
 

5,排查--port问题,有可能85的MySQL port不是默认3306, 这样我远程连接时,没有指定--port,用的是3306, 而85上没有对3306进行监听。

ps -ef | grep mysqld

果然是: 85上的MySQL使用的是3308 port.

最终连接方式:加上--port=3308

 

[mysql@vvmvcs0 ~]$ mysql -hxxx.xxx.xxx.85 -uroot -p --port=3308 

Enter password: 

Welcome to the MySQL monitor. Commands end with ; or \g.
 

为什么出现这么低级的错误呢?

因为我一直在用85上的MySQL, 而且每次都是直接用mysql -uroot就连接上了,没有指定--port,这样我就一直以为这MySQL的port一直是默认的3306的。
 

其实根本原因是:
 

1. MySQL本地连接,如果不指mysql --protocol=tcp, 连接默认是socket方式连接的。这点大家都知道。  www.2cto.com  

2, MySQL socket连接是根据sokect文件来的,与--port不相关的,如果是一机多实例,则用-S(或者--socket=name )来指定连接哪个实例。

就是这个socket连接对--port无识别效果,导致排查这个问题这么久。

见下面: 其实85上只有一个port为3308的MySQL实例,但是用3306仍然是连接上此实例,说明socket连接方式忽略--port参数。

 

-bash-3.2$ mysql -uroot --port=3308

 Welcome to the MySQL monitor. Commands end with ; or \g.

 

 mysql -uroot --port=3306 

Welcome to the MySQL monitor. Commands end with ; or \g.

再次说明基础细节很重要啊。 



About Me


.............................................................................................................................................

● 本文整理自网络

● 本文在itpub(http://blog.itpub.net/26736162/abstract/1/)、博客园(http://www.cnblogs.com/lhrbest)和个人微信公众号(xiaomaimiaolhr)上有同步更新

● 本文itpub地址:http://blog.itpub.net/26736162/abstract/1/

● 本文博客园地址:http://www.cnblogs.com/lhrbest

● 本文pdf版、个人简介及小麦苗云盘地址:http://blog.itpub.net/26736162/viewspace-1624453/

● 数据库笔试面试题库及解答:http://blog.itpub.net/26736162/viewspace-2134706/

● DBA宝典今日头条号地址:http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826

.............................................................................................................................................

● QQ群号:230161599(满)、618766405

● 微信群:可加我微信,我拉大家进群,非诚勿扰

● 联系我请加QQ好友(646634621),注明添加缘由

● 于 2017-08-01 09:00 ~ 2017-08-31 22:00 在魔都完成

● 文章内容来源于小麦苗的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解

● 版权所有,欢迎分享本文,转载请保留出处

.............................................................................................................................................

● 小麦苗的微店:https://weidian.com/s/793741433?wfr=c&ifr=shopdetail

● 小麦苗出版的数据库类丛书:http://blog.itpub.net/26736162/viewspace-2142121/

.............................................................................................................................................

使用微信客户端扫描下面的二维码来关注小麦苗的微信公众号(xiaomaimiaolhr)及QQ群(DBA宝典),学习最实用的数据库技术。

   小麦苗的微信公众号      小麦苗的DBA宝典QQ群1     小麦苗的DBA宝典QQ群2        小麦苗的微店

.............................................................................................................................................

时间: 2024-11-08 18:16:06

MySQL远程连接ERROR 2003 (HY000) Cant connect to MySQL server on (10060)的相关文章

ERROR 2003:Can’t connect to MySQL server on ‘localhost’ (10060)

ERROR 2003:Can't connect to MySQL server on 'localhost' (10060) 错误,一直没有连接上. 一.关闭连接机器的防火墙, 二.3306端口在防火强中例外

mysqldump: Got error: 2003: Can't connect to MySQL server on '127.0.0.1' (10060)

今天在用批处理进行MySQL自动备份的过程中遇到一个问题,错误提示:mysqldump: Got error: 2003: Can't connect to mysql server on '127.0.0.1' (10060) 在我本机进行测试的时候批处理可以正确执行,但是放在服务器端就是无法执行,(服务器环境window2003),经过考虑本机的mysql与服务器的mysql区别就是端口不同,本机mysql是默认端口:3306,但是服务器的端口经过修改后变成:4900,于是在这里加上端口号:

远程连接Mysql数据库问题(ERROR 2003 (HY000))

问题代码代码 ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.0.19' (111)         这个 原因就是Mysql数据库的默认配置文件my.cnf(linux下)中的bind-address默认为127.0.0.1,所以就算你创建了可以 remote访问的用户,你也不能使用mysql -h命令进行访问,若访问就会出现上出问题,因为此时Mysql只接受localhost,所以需要把bind-address屏蔽掉

详解远程连接Mysql数据库的问题(ERROR 2003 (HY000))_Mysql

在我们用客户端及其远程连接服务器Mysql数据库的过程中,容易出现下面问题: 问题代码代码 ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.0.19' (111)  ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.0.19' (111)      这个 原因就是Mysql数据库的默认配置文件my.cnf(linux下)中的bind-address

【江湖救急】ERROR 2003 (HY000): Can't connect to MySQL server on '****.mysql.rds.aliyuncs.com' (110)

江湖救急!!!  如上标题  ERROR 2003 (HY000): Can't connect to MySQL server on '***.mysql.rds.aliyuncs.com' (110) 无法访问数据库了  链接总是timeOUT

远程连接MySQL报错ERROR 2003解决办法

问题代码代码 ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.0.19' (111) ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.0.19' (111) 这个 原因就是Mysql数据库的默认配置文件my.cnf(linux下)中的bind-address默认为127.0.0.1,所以就算你创建了可以 remote访问的用户,你也不能使用mys

mysql远程连接设置

远程连接mysql数据库: 连接上以后,通过这台跳转服务器远程连接mysql库: 用法:mysql -h ip/主机名  -u 用户名  -p 密码 [root@AY131227102745952439Z /etc]#mysql -h rdsa3qfmmqriq3y.mysql.rds.aliyuncs.com  -u weblog -p Enter password: Welcome to the MariaDB monitor.  Commands end with ; or \g. You

Linux开启mysql远程连接方法与问题解决办法

Linux开启mysql远程连接方法 1.GRANT命令创建远程连接mysql授权用户root mysql -u root -p mysql>GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY '123456' WITH GRANT OPTION; 增加root用户授权通过本地机(localhost)访问,密码 "123456". mysql>GRANT ALL PRIVILEGES ON *.* TO r

MySQL远程连接丢失问题解决办法

具体的解决步骤如下,希望能帮助遇到同样问题的同学们: 找到并修改my.cnf文件.在不同的Linux系统下,my.cnf放在不同的位置.这里以Ubuntu Server做示例,其他系统请根据情况自行找到my.cnf的路径.一般只会存放在/etc/my.cnf或者/etc/mysql/my.cnf下. 首先用vim打开my.cnf: vim /etc/mysql/my.cnf 看看是否有绑定本地回环地址的配置,如果有,注释掉下面这段文字:(在文字之前加上#号即可) bind-address = 1