MySQL 数据库远程连接常见错误 2003 和 2013

在 Windows 7 上安装了 Oracle Virtualbox,跑 CentOS 7 Guest。MariaDB 数据库默认侦听在 127.0.0.1。

VirtualBox 上开启两块网卡,一块做 NAT,把所有 3306 转发到 CentOS 上,一块做桥接。

enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.7.66 netmask 255.255.255.0 broadcast 192.168.7.255
enp0s8: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.3.15 netmask 255.255.255.0 broadcast 10.0.3.255
连接不同的界面,可以看到如下错误:

# mysql -h 192.168.7.52 -u xiaobao -p
Enter password:
ERROR 2013 (HY000): Lost connection to MySQL server at ‘reading initial communication packet’, system error: 0

# mysql -h 192.168.7.66 -u xiaobao -p
Enter password:
ERROR 2003 (HY000): Can’t connect to MySQL server on ‘192.168.7.66’ (111)

解决问题的办法就是让 MySQL 听在所有网络界面上, 即注释掉 /etc/my.cnf 里如下一行:

bind-address = 127.0.0.1

重启: # service mariadb restart

当然, 2013 错误的另外一个解决办法是添加一行:

skip-name-resolve

实际上要考虑服务器端 /etc/resolv.conf 是否正确配置。

作者: 甬洁网络

--移动互联网&物联网技术提供商