在 Debian 上 MySQL / MariaDB 启动慢 是很常见的问题,通常不是单一原因,而是以下几类之一。我按「最常见 → 较少见」给你梳理,并给出排查方法。
如果上次是 异常关机 / OOM / kill -9 / 断电:
判断方法
journalctl -u mysql
# 或
less /var/log/mysql/error.log
常见日志:
InnoDB: Doing recovery: scanned up to ...
✅ 正常现象,等它恢复完即可
❌ 如果每次都慢,说明经常异常关闭
MySQL 默认会做 反向 DNS 解析
解决方法(强烈推荐)
[mysqld]
skip-name-resolve
然后:
systemctl restart mysql
检查
free -h
iotop
如果 swap 很大且 IO 100%,启动一定慢。
例如:
innodb_buffer_pool_size = 4G
但机器只有 2G 内存
→ 启动时要分配 & 初始化,非常慢
✅ 调小或合理设置
启动时要:
Debian 使用 systemd:
systemctl status mysql
如果看到:
TimeoutStartSec
说明 systemd 认为“启动慢”。
权限检查卡住
aa-status
# 1. 看日志
journalctl -u mysql --no-pager | tail -50
# 2. 看错误日志
less /var/log/mysql/error.log
# 3. 看是否 DNS 慢
ping $(hostname)
# 4. 看内存
free -h
# 5. 看 IO
iostat -x 1
你可以贴出以下信息之一:
journalctl -u mysql 启动阶段日志/var/log/mysql/error.log 开头几十行我可以直接告诉你 是哪一条导致的,以及改哪个参数。