在 Debian 上 MySQL 连接慢,常见原因主要集中在 DNS 解析、配置参数、网络/防火墙、资源问题 这几类。下面按出现频率给你一个排查清单。
mysql -h ip 慢,mysql -h localhost 快MySQL 默认会对连接的 客户端 IP 做反向 DNS 解析(PTR)
如果 DNS 服务器慢或不可达,就会卡很久。
编辑 MySQL 配置文件:
/etc/mysql/mysql.conf.d/mysqld.cnf
在 [mysqld] 下加:
skip-name-resolve
重启:
systemctl restart mysql
✅ 效果:连接瞬间变快
⚠️ 注意:之后只能用 IP 或 % 授权,不能用主机名授权
bind-address = 127.0.0.1
如果只监听 127.0.0.1,远程连接会超时或很慢。
改为:
bind-address = 0.0.0.0
或注释掉。
nftables / ufw检查:
ufw status
ping mysql_ip
mtr mysql_ip
SHOW PROCESSLIST;
max_connections 太小Sleep 连接top
free -h
caching_sha2_passwordMySQL 8 默认认证插件,某些旧客户端会卡。
解决:
ALTER USER 'user'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
测试:
mysql -h ip -u user -p --ssl-mode=DISABLED
如果快了,说明是 SSL 问题。
systemctl status mysql
iostat -x 1
| 检查项 | 命令 |
|---|---|
| DNS 解析 | skip-name-resolve |
| 绑定地址 | bind-address |
| 连接数 | SHOW PROCESSLIST |
| 资源 | top / free |
| 网络 | ping / mtr |
如果你愿意,可以把下面信息发我,我能直接帮你定位:
我可以直接给你一份最小修改方案。