Ubuntu 上 MySQL 启动失败的排查与修复
一 快速定位
sudo systemctl status mysql、sudo journalctl -xeu mysql、sudo tail -n50 /var/log/mysql/error.log二 高频原因与对应修复
sudo chown -R mysql:mysql /var/lib/mysql,必要时 sudo chmod -R 755 /var/lib/mysql;确保 AppArmor/SELinux 未拦截(Ubuntu 常见为 AppArmor)。sudo netstat -tulnp | grep 3306 找到占用进程并停止,或在配置中更换端口后重启。sudo chown -R mysql:mysql /var/run/mysqld;sudo chown -R mysql:adm /var/log/mysql,确保日志文件可写。df -h 检查分区使用率,清理不必要文件后重试启动。sudo apt update && sudo apt install --reinstall mysql-server;若提示 unit not found,先 sudo apt purge mysql-server 再安装。三 逐步排查操作清单
sudo systemctl status mysql && sudo tail -n50 /var/log/mysql/error.logsudo nano /etc/mysql/my.cnf(或 /etc/mysql/mysql.conf.d/mysqld.cnf),保存后 sudo systemctl restart mysqlsudo chown -R mysql:mysql /var/lib/mysqlsudo chown -R mysql:mysql /var/run/mysqldsudo chown -R mysql:adm /var/log/mysqlsudo netstat -tulnp | grep 3306,释放或更换端口df -h,清理空间sudo apt purge mysql-server mysql-client mysql-common mysql-server-core-* mysql-client-core-*sudo apt autoremove && sudo apt autocleansudo apt update && sudo apt install mysql-serversudo systemctl start mysql && sudo systemctl status mysql四 常见报错与修复要点
mysql-server,必要时 purge 后重装。sudo chown -R mysql:mysql /var/run/mysqld,必要时创建目录并赋权。sudo chown -R mysql:adm /var/log/mysql,清理或重建 error.log 后重试。