Ubuntu 上 MySQL 无法启动的原因非常多,常见原因和排查思路如下(按最常见 → 较少见顺序):
sudo systemctl status mysql
sudo journalctl -xe
sudo cat /var/log/mysql/error.log
90% 的问题看
error.log就能定位
错误类似:
Can't find file: './mysql/user.frm' (errno: 13)
解决:
sudo chown -R mysql:mysql /var/lib/mysql
sudo chmod -R 750 /var/lib/mysql
sudo systemctl restart mysql
df -h
如果 / 或 /var 100%:
云服务器低配常见:
InnoDB: Cannot allocate memory for the buffer pool
临时解决:
sudo systemctl stop mysql
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
调小:
innodb_buffer_pool_size = 64M
重启:
sudo systemctl start mysql
sudo netstat -tunlp | grep 3306
若有冲突:
如 /etc/mysql/my.cnf 或 mysqld.cnf 写错:
unknown variable 'xxx'
检查:
sudo mysqld --verbose --help
错误:
InnoDB: Database page corruption
可尝试:
sudo systemctl stop mysql
sudo mv /var/lib/mysql /var/lib/mysql_bak
sudo mysql_install_db --user=mysql
⚠️ 会清空数据,仅测试环境
sudo aa-status
如 MySQL 被限制,可:
sudo systemctl restart apparmor
✅ 磁盘空间
✅ 权限
✅ 内存
✅ 端口
✅ 错误日志
你可以把下面内容贴出来,我直接帮你判断:
sudo systemctl status mysql
sudo tail -n 50 /var/log/mysql/error.log
告诉我 Ubuntu 版本 + MySQL 版本,我可以更精确帮你。