当你在尝试启动 MySQL 服务时遇到 /usr/sbin/mysql code=exited, status=203/EXEC
错误,这通常表示在执行 MySQL 服务的过程中出现了问题。状态码 203/EXEC
通常与执行文件或其权限有关。以下是一些可能的原因和解决方法:
首先,检查 MySQL 服务文件是否存在并且可执行。
ls -l /usr/sbin/mysqld
确保文件存在并且具有可执行权限。如果文件不存在或权限不正确,可以尝试重新安装 MySQL。
检查 MySQL 的 systemd 服务配置文件,通常位于 /lib/systemd/system/mysqld.service
或 /etc/systemd/system/mysqld.service
。
cat /lib/systemd/system/mysqld.service
确保 ExecStart
指令指向正确的 MySQL 可执行文件路径。
确保 MySQL 可执行文件和相关目录的权限正确。
sudo chown mysql:mysql /usr/sbin/mysqld
sudo chmod 755 /usr/sbin/mysqld
如果你的系统启用了 SELinux 或 AppArmor,可能会限制 MySQL 的执行。你可以暂时禁用 SELinux 或 AppArmor 来排除这个问题。
编辑 /etc/selinux/config
文件,将 SELINUX
设置为 permissive
或 disabled
。
sudo setenforce 0
sudo systemctl stop apparmor
sudo systemctl disable apparmor
查看系统日志以获取更多错误信息。
journalctl -xe
这将显示详细的错误日志,帮助你进一步诊断问题。
如果以上方法都无法解决问题,考虑重新安装 MySQL。
sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get install mysql-server
确保所有 MySQL 依赖库都已正确安装。
ldd /usr/sbin/mysqld
这将列出 MySQL 可执行文件所需的所有共享库,并检查它们是否存在。
确保 MySQL 配置文件(如 /etc/my.cnf
或 /etc/mysql/my.cnf
)没有语法错误或不正确的配置。
sudo mysqld --validate-config
领取专属 10元无门槛券
手把手带您无忧上云