Ubuntu 上 MySQL 启动不了的原因有很多,下面我按最常见原因 → 排查方法 → 解决办法给你梳理一下,你可以一步步对照。
先执行:
sudo systemctl status mysql
或
sudo journalctl -xe
常见报错关键词:
Job failedCan't start serverPermission deniedPort 3306 already in useInnoDB: ...把报错贴出来,能直接定位问题。
df -h
如果 / 或 /var 使用率 100%:
sudo apt clean
sudo rm -rf /var/lib/mysql/ib_logfile*
然后重启:
sudo systemctl restart mysql
MySQL 数据目录一般是:
/var/lib/mysql
检查权限:
ls -ld /var/lib/mysql
正确应为:
drwx------ mysql mysql
修复:
sudo chown -R mysql:mysql /var/lib/mysql
sudo chmod 700 /var/lib/mysql
sudo netstat -tunlp | grep 3306
如果有其他进程:
检查配置:
sudo mysqld --verbose --help | head
sudo nano /etc/mysql/my.cnf
或:
sudo mysqladmin variables
常见错误:
查看日志:
sudo cat /var/log/mysql/error.log
如果是 InnoDB 损坏:
sudo systemctl stop mysql
sudo rm -f /var/lib/mysql/ib_logfile*
sudo systemctl start mysql
⚠️ 会丢失未提交事务,生产环境慎用
sudo aa-status
如果是 AppArmor 导致:
sudo systemctl stop apparmor
sudo systemctl disable apparmor
sudo dpkg --configure -a
sudo apt install -f
sudo systemctl stop mysql
sudo systemctl start mysql
sudo systemctl status mysql
请把下面内容贴出来:
systemctl status mysql 输出/var/log/mysql/error.log 关键报错我可以直接告诉你是哪一条导致的、怎么修。