Debian 上 MariaDB 启动失败的定位与修复
一、快速定位
systemctl status mariadb.servicejournalctl -xeu mariadbsudo cat /var/log/mariadb/error.logsudo cat /var/log/mysql/error.logsudo mkdir -p /var/log/mariadb/二、常见原因与对应修复
systemctl status 出现 ExecStartPost=/etc/mysql/debian-start 失败(如 code=2/203/EXEC),或 journalctl 报 “Failed at step EXEC spawning /etc/mysql/debian-start: No such file or directory”。ls /etc/mysql/debian-start*;若有,重命名恢复:sudo cp /etc/mysql/debian-start.dpkg-dist /etc/mysql/debian-startapt download mariadb-server-<版本>dpkg-deb --extract mariadb-server-<版本>.deb /tmp/mariadbsudo cp /tmp/mariadb/etc/debian-start /etc/mysql/sudo systemctl start mariadbsudo mv /var/lib/mysql /var/lib/mysql.bak.<日期>sudo mysql_install_db --user=mysql --datadir=/var/lib/mysql(Debian 10 及更早常用)sudo mariadb-install-db --user=mysql --datadir=/var/lib/mysqlsudo systemctl start mariadbsudo mysql_secure_installationdf -hsudo mkdir -p /var/log/mariadb/sudo chown mysql:mysql /var/log/mariadb/三、安全修复与回滚建议
sudo cp -a /var/lib/mysql /var/lib/mysql.bak.<日期>,以便无法启动时回滚。四、仍未恢复时的有效求助信息
sudo systemctl status mariadb.service --no-pager -lsudo journalctl -xeu mariadb --since "2025-12-24 00:00:00"sudo tail -n 50 /var/log/mariadb/error.log(若文件不存在则说明日志路径或权限仍需检查)ls -ld /var/lib/mysql /var/lib/mysql/*logfile* /var/run/mysqld /etc/mysql/debian-start*df -h 与 free -m(判断是否空间/内存不足)