远程连接mysql,输入命令:
mysql -u root -h 172.27.71.138 --port 11641 -D people -p,报错:
ERROR 2003 (HY000): Can't connect to MySQL server on '172.27.71.138' (111)
1).排除是网络问题(ping正常),防火墙问题(防火墙关闭)。
2).查看要连接的远程数据库是否配置了bind_address参数
远程数据库查看my.cnf文件和数据库当前参数show variables like 'bind_address';
如果设置了bind_address=127.0.0.1那么只能通过本机socket连接。
在my.cnf中注释掉这一行即可。MySQL启动时会读取配置文件my.cnf,读取次序依次为 /etc/my.cnf
、/etc/mysql/my.cnf
、/usr/local/etc/my.cnf
、~/.my.cnf
,在这几个地方找即可。
3)查看数据库是否设置了skip_networking参数
如果设置了该参数,那么只能本地登录mysql数据库
4)查看mysql端口号,排查--port问题,有可能要连接的MySQL port不是默认3306
查询端口号命令:
mysql> show global variables like 'port';
+—————+——-+
| Variable_name | Value |
+—————+——-+
| port | 3307 |
+—————+——-+
1 row in set (0.00 sec)
5)排查用户和密码问题, 其实用户和密码的错误,不会出现111的,所以排除用户密码问题ERROR 1045 (28000): Access denied for user 'root'@'XXXX' (using password: YES)