Ubuntu 18.04.5 LTS下MySQL 5.7.31无法启动,求排查解决
兄弟,看你给的日志和文件列表,问题简直一目了然:系统找不到mysqld——也就是MySQL的核心服务器进程。
你日志里高亮的那行就是致命提示:
Sep 19 05:38:32 www mysql-systemd-start[2938]: /usr/share/mysql/mysql-systemd-start: line 44: mysqld: command not found
再看你列的/usr/bin下的MySQL文件,全是客户端工具(比如mysql)、备份工具(mysqldump)这类辅助程序,连mysqld_safe都有,但唯独缺了最关键的mysqld服务器二进制文件——这就好比你要开汽车,却找不到发动机一样。
为啥会这样?
大概率是这几种情况:
mysql-server包没装全,安装过程中出错中断了- 不小心误删了
mysqld文件 - 之前升级MySQL的时候搞砸了,核心文件丢了
怎么解决?
第一步:先确认MySQL服务器包的状态
先查一下mysql-server包是不是真的没装好:
dpkg -l | grep mysql-server
如果输出里看不到mysql-server-5.7(对应你的5.7.31版本),或者状态不是ii(ii表示已正常安装),那肯定是安装出问题了。
第二步:彻底清理+重新安装
如果确认是包的问题,咱们先把残留的烂摊子清干净,再重新装:
1. 先停掉所有可能残留的MySQL进程
sudo systemctl stop mysql sudo killall -9 mysqld mysqld_safe
2. 彻底卸载所有MySQL相关包和残留文件
sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-core-5.7 mysql-client-core-5.7 sudo apt-get autoremove sudo apt-get autoclean sudo rm -rf /var/lib/mysql /etc/mysql
⚠️ 注意:如果/var/lib/mysql里有你要保留的数据,一定要先备份!比如用mysqldump导出所有库,或者直接打包目录:sudo tar -czf mysql-data-backup.tar.gz /var/lib/mysql
3. 重新安装MySQL 5.7
sudo apt-get update sudo apt-get install mysql-server-5.7 mysql-client-5.7
安装的时候会让你设root密码,记好别忘。
第三步:验证修复结果
装完之后先检查/usr/sbin目录(mysqld默认在这,你的PATH里包含这个目录)有没有mysqld:
ls -l /usr/sbin/mysqld
能看到这个文件的话,就启动服务试试:
sudo systemctl start mysql sudo systemctl status mysql
如果服务显示active (running),那问题就搞定了。
内容的提问来源于stack exchange,提问作者Arsh Kenia

