Debian 上 MySQL(或 MariaDB)崩溃的原因有很多种,下面按常见程度和排查思路给你一个系统性的说明。
这是 Debian 上 MySQL 崩溃最常见的原因。
排查方法:
dmesg | grep -i "oom\|killed"
或:
journalctl -xe | grep -i mysql
典型现象:
failed解决办法:
innodb_buffer_pool_sizeMySQL 需要写日志、临时表、binlog。
检查:
df -h
常见报错:
No space left on device
解决:
异常关机、断电、kill -9 可能导致 InnoDB 崩溃。
日志特征:
InnoDB: Page corruption
InnoDB: Assertion failure
解决方式:
如 my.cnf 写错参数:
128M 写成 128)排查:
mysqld --verbose --help | head
journalctl -u mysql
常见错误:
Can't find file: './mysql/user.frm'
Permission denied
systemctl status mysql
journalctl -u mysql
通常在:
/var/log/mysql/error.log
dmesg | tail -50
你可以贴出以下信息之一:
journalctl -u mysql 输出/var/log/mysql/error.log 最后 50 行dmesg 中相关部分mysql --version)cat /etc/debian_version)我可以直接帮你判断是 OOM / 磁盘 / InnoDB / 配置 哪一类问题,并给具体修复命令。