从一台linux远程连接另一台linux上的MySQL,
mysql -hxxx.xxx.xxx.xxx -uroot -p
出现ERROR 2003 (HY000): Can't connect to MySQL server on 'xxx.xxx.xxx.xxx'(111)错误。
分析问题,应该是远程链接数据库连不上,直接想到的是3种可能:网络问题,端口问题,数据库配置问题。
首先检查网络:能ping通;
其次检查端口:是常规的3306端口
netstat -tunlp |grep mysqld
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 4144/mysqld
最后检查配置/etc/mysql/my.cnf :
是否有配置skip_networking: 这使MySQL只能通过本机Socket连接(socket连接也是本地连接的默认方式),放弃对TCP/IP的监听,当然也不让本地java程序连接MySQL。——没有这个配置。
是否有配置bind_address=127.0.0.1(当然也可以是其他ip),这种情况可以指定TCP/IP连接 。有这个配置,把它注销掉,重启mysql。
再访问mysql -hxxx.xxx.xxx.xxx -uroot -p,成功登入。