温馨提示×

ubuntu mariadb为啥启动失败

小樊
46
2026-10-19 06:02:32
栏目: 云计算

Ubuntu 上 MariaDB 启动失败的原因很多,最常见的是端口占用、数据目录权限、配置文件错误、磁盘空间不足或上次异常关机。下面给你一个排查思路 + 常见原因 + 解决方法,你可以一步步来。


一、先看错误日志(最重要)

sudo systemctl status mariadb
sudo journalctl -xe

或者看 MariaDB 自己的日志:

sudo cat /var/log/mysql/error.log

把里面的 ERROR 行发出来,基本就能定位。


二、最常见启动失败原因

1️⃣ 端口 3306 被占用

sudo netstat -tunlp | grep 3306

如果有其他进程(如 MySQL、Docker)占用:

  • 停掉占用进程
  • 或修改 MariaDB 端口

2️⃣ 数据目录权限问题(非常常见)

错误示例:

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

3️⃣ 配置文件写错(my.cnf)

比如:

  • 错误的 bind-address
  • 不存在的路径
  • 重复配置

检查:

sudo mariadbd --help --verbose

或:

sudo mysqld --validate-config

4️⃣ 磁盘空间不足

df -h

如果 / 或 /var 满了,MariaDB 起不来。


5️⃣ 上次异常关机 / 表损坏

日志常见:

InnoDB: Database was not shut down normally

解决:

sudo systemctl stop mariadb
sudo mariadb-check --all-databases --check-upgrade --auto-repair
sudo systemctl start mariadb

6️⃣ AppArmor / SELinux 限制

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

四、你可以这样给我信息,我直接帮你定位

请贴出:

  1. systemctl status mariadb 输出
  2. /var/log/mysql/error.log 中的 ERROR 行
  3. Ubuntu 版本(lsb_release -a)
  4. 是否装过 MySQL

我可以直接告诉你具体是哪一行配置或权限导致启动失败。

0 踩