MySQL连接10038,3306/tcp closed mysql分析

209 阅读1分钟

背景

用 Navicat 连了一个新安装的 MySQL 数据库,报 10038 错误: 在这里插入图片描述

文本记录这个问题的分析及解决过程。

端口状态检测

首先,目标服务器的防火墙是关闭的,同时数据库的 root 帐号的 HOST 值为 %,而错误码 10038 还是端口问题。

检测端口状态:本地回环地址监听 3306 开启。 在这里插入图片描述

分别检测回环地址和本机 IP 地址,3306 的状态不相同: 在这里插入图片描述

检查 MySQL 的启动配置文件 /etc/my.cnf ,发现问题根源是配置绑定了回环地址,导致无法进行远程连接: 在这里插入图片描述 注释掉后重启 MySQL 服务,再次检测端口状态 OK: 在这里插入图片描述

客户端连接成功。

启示录

最初定位时,猜测可能是 mysqld.conf 文件配置的问题,找到它与其他能正常访问的服务器的配置相比,没有问题;随后又对比 my.cnf 文件,找到了症结。

为什么绑定回环地址启动呢?跟踪了一下安装脚本,这个安装脚本是两年前写的,估计当时为了安全,发布时限制了 MySQL 访问地址。