在 Debian 上 MySQL 连接慢,常见原因和对应的解决办法如下(按出现频率排序):
MySQL 默认会对客户端 IP 做 反向 DNS 解析,如果 DNS 配置不正常,会卡住几秒。
telnet ip 3306 能通,但登录慢在 /etc/mysql/mysql.conf.d/mysqld.cnf 或 /etc/mysql/my.cnf 中加:
[mysqld]
skip-name-resolve
然后重启:
systemctl restart mysql
✅ 之后 MySQL 只用 IP,不再做 DNS 解析。
localhost 而不是 127.0.0.1在 Debian 上:
localhost → 走 Unix socket127.0.0.1 → 走 TCP如果 socket 配置异常,会慢。
明确指定:
mysql -h 127.0.0.1 -u user -p
如果:
SELECT host FROM mysql.user;
中有大量 % 或 DNS 主机名,也会慢。
skip-name-resolve某些老版本 MySQL/MariaDB 启动时初始化慢。
检查:
systemctl status mysql
journalctl -u mysql
测试:
ping db_ip
telnet db_ip 3306
如果客户端强制 SSL:
SHOW VARIABLES LIKE 'require_secure_transport';
可临时测试:
mysql -h ip -u user -p --ssl-mode=DISABLED
SHOW STATUS LIKE 'Threads_connected';
SHOW VARIABLES LIKE 'max_connections';
如果接近上限,新连接会排队。
skip-name-resolve ✅127.0.0.1 测试mysql 错误日志如果你愿意,可以告诉我:
我可以更精准定位。