You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

执行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

火山引擎 最新活动