mysql - /usr/sbin/mysql 代码=退出状态 203/执行错误
问题描述
我不知道我到底做错了什么,但很可能是我做的一些“chown”操作。我试图允许用户和组 mysql:mysql 访问 /media/usb 驱动器,但可能无意中更改了其他内容。
当我这样做时,sudo systemctl start mysql.service
我得到一个错误。用 进行检查后sudo systemctl status mysqld
,我得到以下信息:
mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: activating (start-post) (Result: exit-code) since Fri 2020-06-19 08:11:01 EDT; 19s ago
Process: 15459 ExecStart=/usr/sbin/mysqld (code=exited, status=203/EXEC)
Process: 15444 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
Main PID: 15459 (code=exited, status=203/EXEC); : 15460 (mysql-systemd-s)
Tasks: 2
Memory: 2.4M
CPU: 175ms
CGroup: /system.slice/mysql.service
└─control
├─15460 /bin/bash /usr/share/mysql/mysql-systemd-start post
└─15687 sleep 1
Jun 19 08:11:01 apil-dlrig systemd[1]: Starting MySQL Community Server...
Jun 19 08:11:01 apil-dlrig systemd[1]: mysql.service: Main process exited, code=exited, status=203/EXEC
当我检查所有权时/var/lib/mysql
,我得到以下信息,这似乎是合理的。即用户mysql
对该文件夹拥有完全所有权。
apil@apil-dlrig:~$ sudo ls -la /var/lib/mysql
total 176212
drwx------ 7 mysql mysql 4096 Jun 19 07:34 .
drwxr-xr-x 79 root root 4096 Oct 30 2019 ..
-rw-r----- 1 mysql mysql 56 Oct 20 2019 auto.cnf
-rw------- 1 mysql mysql 1680 Nov 22 2019 ca-key.pem
-rw-r--r-- 1 mysql mysql 1112 Nov 22 2019 ca.pem
-rw-r--r-- 1 mysql mysql 1112 Nov 22 2019 client-cert.pem
-rw------- 1 mysql mysql 1676 Nov 22 2019 client-key.pem
-rw-r--r-- 1 mysql mysql 0 May 5 06:38 debian-5.7.flag
drwxr-x--- 2 mysql mysql 4096 Jun 6 13:44 foo
-rw-r----- 1 mysql mysql 665 Jun 19 07:34 ib_buffer_pool
-rw-r----- 1 mysql mysql 79691776 Jun 19 07:34 ibdata1
-rw-r----- 1 mysql mysql 50331648 Jun 19 07:34 ib_logfile0
-rw-r----- 1 mysql mysql 50331648 Oct 20 2019 ib_logfile1
-rw-r----- 1 mysql mysql 155 Jun 16 07:23 keyring_backup
drwxr-x--- 2 mysql mysql 4096 May 5 06:38 mysql
-rw-r--r-- 1 mysql mysql 6 May 5 06:38 mysql_upgrade_info
drwxr-x--- 2 mysql mysql 4096 May 5 06:38 performance_schema
-rw------- 1 mysql mysql 1680 Nov 22 2019 private_key.pem
drwxr-x--- 2 mysql mysql 4096 Jun 16 07:25 prod
-rw-r--r-- 1 mysql mysql 452 Nov 22 2019 public_key.pem
-rw-r--r-- 1 mysql mysql 1112 Nov 22 2019 server-cert.pem
-rw------- 1 mysql mysql 1680 Nov 22 2019 server-key.pem
drwxr-x--- 2 mysql mysql 12288 Nov 22 2019 sys
/etc/systemd/system/multi.user.wants.targets/mysql.service
外观如下。这里不应该改变任何东西,即它与 MySQL 一样默认。
# MySQL systemd service file
[Unit]
Description=MySQL Community Server
After=network.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
PermissionsStartOnly=true
ExecStartPre=/usr/share/mysql/mysql-systemd-start pre
ExecStart=/usr/sbin/mysqld
ExecStartPost=/usr/share/mysql/mysql-systemd-start post
TimeoutSec=600
Restart=on-failure
RuntimeDirectory=mysqld
RuntimeDirectoryMode=755
想知道可能出了什么问题。任何帮助,将不胜感激。
谢谢
解决方案
如果您查看原始错误,则问题是:ExecStart=/usr/sbin/mysqld (code=exited, status=203/EXEC)
. 看起来像文件的某种执行权限mysqld
?也检查了:
ls -la /usr/sbin/mysqld
返回
-rw-r--r-- 1 root root 24585896 Apr 30 10:52 /usr/sbin/mysqld
所以问题(我认为)是用户 root 没有执行权限。看前三个字母rw-
。最后一个破折号表示没有执行权限。
所以我简单地运行了以下内容chmod 777 /usr/sbin/mysqld
,之后所有权返回为
-rwxrwxrwx 1 root root 24585896 Apr 30 10:52 /usr/sbin/mysqld
现在,systemctl start mysql.service
运行良好。
令人惊讶的是,在 stackoverflow 上写问题的过程实际上可以帮助我在 80% 的时间内解决问题。再次感谢各位。
推荐阅读
- html - 我的徽标图像未在 Html 中正确显示
- java - 我如何用java在hdf5文件中写入这个对象
- database - 安装了 IBM DB2 并创建了示例数据库。数据库已创建,但无法查看其中的任何表
- java - 带代理的 RestTemplate - 如何测试
- java - 读取 JSON 文件并将其转换为 HTML?
- powershell - Powershell根据日期范围标准删除文件夹文件
- excel - 更改打印机时 Excel 文档的布局会发生变化
- javascript - WebComponents - 在组件公共接口中使用 CSS 自定义属性有什么好处?
- javascript - Stripe - 如何使用 Checkout Session (php/js) 获取订阅 ID(以取消)
- laravel - 在 Laravel 6 中调用未定义的方法 stdClass::isOnline()