mysql连接不成功解决方法汇总

MySQL连接故障排查
本文针对MySQL连接失败的问题,从网络连接、配置文件设置、DNS解析、登录凭据及端口等多个方面进行了详细的故障排查,并提供了具体的解决方案。

数据库连接不成功:

报错信息:ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx.xxx.xxx.5' (111)
1,可能网络连接问,远程ping xxx.xxx.xxx.5 ,能ping通,排除此情况
  [mysql@vvmvcs0 ~]$ ping xxx.xxx.xxx.5
  PING xxx.xxx.xxx.5 (xxx.xxx.xxx.5) 56(84) bytes of data.
  64 bytes from xxx.xxx.xxx.5: icmp_seq=1 ttl=63 time=0.230 ms

2,排查可能由于5上my.cnf里配置了skip_networking或者bind_address,只允许本地socket连接
  2.1 在[mysqld]下设置skip_networking,
  知识说明: 这使用MySQL只能通过本机Socket连接(socket连接也是本地连接的默认方式),放弃对TCP/IP的监听 
  当然也不让本地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。 。
   [mysqld]
   skip_name_resolve
   知识说明:这个参数加上后,不支持主机名的连接方式。

4, 排查用户和密码问题, 其实用户和密码的错误,不会出现111的,所以排除用户密码问题
   ERROR 1045 (28000): Access denied for user 'root'@'XXXX' (using password: YES)

5,排查--port问题,有可能5的MySQL port不是默认3306, 这样我远程连接时,没有指定--port,用的是3306, 而5上没有对3306进行监听。
  ps -ef | grep mysqld
  果然是: 5上的MySQL使用的是3308 port.
  最终连接方式:加上--port=3308
  [mysql@vvmvcs0 ~]$ mysql -hxxx.xxx.xxx.5 -uroot -p --port=3308
  Enter password:
  Welcome to the MySQL monitor. Commands end with ; or \g.

情况2:ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.1.165' (113)

      解决方法:确定远程机器的防火墙关闭,或在防火墙允许3306端口号

转载于:https://my.oschina.net/WYU3CHEN/blog/1594053

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值