背景
用 Navicat 连了一个新安装的 MySQL 数据库,报 10038 错误:
文本记录这个问题的分析及解决过程。
端口状态检测
首先,目标服务器的防火墙是关闭的,同时数据库的 root 帐号的 HOST 值为 %,而错误码 10038 还是端口问题。
检测端口状态:本地回环地址监听 3306 开启。
分别检测回环地址和本机 IP 地址,3306 的状态不相同:
检查 MySQL 启动配置文件 /etc/my.cnf ,发现问题根源是配置绑定了回环地址,导致无法进行远程连接:
注释掉后重启 MySQL 服务,再次检测端口状态 OK:
客户端连接成功。
启示录
最初定位时,猜测可能是 mysqld.conf 文件配置的问题,找到它与其他能正常访问的服务器的配置相比,没有问题;随后又对比 my.cnf 文件,找到了症结。
为什么绑定回环地址启动呢?跟踪了一下安装脚本,这个安装脚本是两年前写的,估计当时为了安全,发布时限制了 MySQL 访问地址。