Ubuntu 上 MariaDB 启动失败的原因很多,最常见的是端口占用、数据目录权限、配置文件错误、磁盘空间不足或上次异常关机。下面给你一个排查思路 + 常见原因 + 解决方法,你可以一步步来。
sudo systemctl status mariadb
sudo journalctl -xe
或者看 MariaDB 自己的日志:
sudo cat /var/log/mysql/error.log
把里面的 ERROR 行发出来,基本就能定位。
sudo netstat -tunlp | grep 3306
如果有其他进程(如 MySQL、Docker)占用:
错误示例:
Can't find file: './mysql/user.frm'
Permission denied
解决:
sudo chown -R mysql:mysql /var/lib/mysql
sudo chmod 755 /var/lib/mysql
sudo systemctl restart mariadb
比如:
bind-address检查:
sudo mariadbd --help --verbose
或:
sudo mysqld --validate-config
df -h
如果 / 或 /var 满了,MariaDB 起不来。
日志常见:
InnoDB: Database was not shut down normally
解决:
sudo systemctl stop mariadb
sudo mariadb-check --all-databases --check-upgrade --auto-repair
sudo systemctl start mariadb
Ubuntu 默认用 AppArmor:
sudo aa-status | grep mysql
如果异常,可临时测试:
sudo systemctl stop apparmor
sudo systemctl start mariadb
sudo systemctl stop mariadb
sudo dpkg --configure -a
sudo apt install --reinstall mariadb-server
sudo systemctl start mariadb
请贴出:
systemctl status mariadb 输出/var/log/mysql/error.log 中的 ERROR 行lsb_release -a)我可以直接告诉你具体是哪一行配置或权限导致启动失败。