Ubuntu 上 MariaDB 启动失败的原因有很多种,必须看错误日志才能确定具体原因。下面我按「常见原因 → 排查方法 → 解决思路」给你一个系统性的排查指南。
sudo journalctl -xeu mariadb
# 或
sudo tail -n 100 /var/log/mysql/error.log
常见错误关键词:
Can't start server: Bind on TCP/IP portInnoDB: Unable to lock ./ibdata1Permission deniedData directory not initializedsudo ss -tulnp | grep 3306
✅ 解决:
/etc/mysql/mariadb.conf.d/50-server.cnf 中的 portls -ld /var/lib/mysql
正确权限:
sudo chown -R mysql:mysql /var/lib/mysql
sudo chmod 700 /var/lib/mysql
错误示例:
AppArmor profile blocks mysql
✅ 解决:
sudo aa-disable /usr/sbin/mysqld
sudo systemctl restart mariadb
常见于新装或迁移数据:
sudo mysql_install_db --user=mysql --datadir=/var/lib/mysql
sudo mariadbd --validate-config
或:
sudo mysqld --verbose --help
错误示例:
InnoDB: Corruption
✅ 紧急处理:
[mysqld]
innodb_force_recovery = 1
(1→6 逐级尝试,仅用于导出数据)
df -h
df -i
✅ 清理日志或大表
sudo systemctl status mariadb
sudo systemctl daemon-reexec
sudo systemctl stop mariadb
sudo journalctl -xeu mariadb
sudo chown -R mysql:mysql /var/lib/mysql
sudo systemctl start mariadb
请把以下信息贴出来:
systemctl status mariadb 输出journalctl -xeu mariadb 报错/var/log/mysql/error.log 关键内容lsb_release -a)mariadb --version)我可以直接告诉你是哪一种原因、怎么一键修复。