执行chown操作后MySQL启动失败(code=exited status 203/EXEC)求助
解决MySQL启动失败(status=203/EXEC)的问题
从你给出的错误信息来看,status=203/EXEC是核心问题——这个错误说明systemd无法执行/usr/sbin/mysqld二进制文件,结合你提到的误操作chown的情况,大概率是你修改了该文件或相关启动脚本的权限/所有权,导致mysql用户无法正常执行它。
下面是一步步的排查和修复步骤:
1. 检查MySQL主程序的权限与归属
先确认/usr/sbin/mysqld的权限和所有者是否正常:
sudo ls -la /usr/sbin/mysqld
正常情况下,输出应该类似这样:
-rwxr-xr-x 1 root root 1421928 Jun 10 2020 /usr/sbin/mysqld
如果权限不是755或者所有者不是root:root,执行以下命令修复:
sudo chown root:root /usr/sbin/mysqld sudo chmod 755 /usr/sbin/mysqld
2. 检查MySQL启动脚本的权限
接下来检查mysql-systemd-start脚本的权限,这个脚本负责启动前后的准备工作:
sudo ls -la /usr/share/mysql/mysql-systemd-start
正常权限应该是-rwxr-xr-x,所有者为root:root,如果异常,修复命令:
sudo chown root:root /usr/share/mysql/mysql-systemd-start sudo chmod 755 /usr/share/mysql/mysql-systemd-start
3. 确认Runtime目录的权限
systemd配置里指定了RuntimeDirectory=mysqld,这个目录(通常是/var/run/mysqld)需要归mysql用户所有,确保它存在且权限正确:
sudo mkdir -p /var/run/mysqld sudo chown mysql:mysql /var/run/mysqld sudo chmod 755 /var/run/mysqld
4. 重启MySQL服务
完成上述修复后,重新加载systemd配置并重启服务:
sudo systemctl daemon-reload sudo systemctl restart mysql.service
如果问题仍存在
如果你之前不小心用了chown -R递归修改了根目录的权限(比如误输了chown -R mysql:mysql /),那问题会更严重,可能需要重新安装MySQL甚至修复系统权限。不过先按上面的步骤排查,大部分情况下都是关键文件的权限被误改导致的。
你可以再次查看服务状态确认:
sudo systemctl status mysql.service
内容的提问来源于stack exchange,提问作者apil.tamang




