/ usr / sbin / mysql код = закрытый статус 203 / EXE C ОШИБКА - PullRequest
0 голосов
/ 19 июня 2020

Я точно не знаю, что я сделал не так, но, вероятно, я сделал какую-то операцию «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

Интересно, что может пойти не так. Любая помощь будет принята с благодарностью.

Спасибо

1 Ответ

0 голосов
/ 19 июня 2020

Если вы посмотрите на исходную ошибку, проблема следующая: 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-. Последний da sh означает отсутствие привилегии выполнения.

Итак, я просто запустил следующий chmod 777 /usr/sbin/mysqld, после чего право собственности возвращается как

-rwxrwxrwx 1 root root 24585896 Apr 30 10:52 /usr/sbin/mysqld

Теперь systemctl start mysql.service работает нормально .

Удивительно, как простой процесс написания вопроса о stackoverflow на самом деле помогает мне решить проблему в 80% случаев. Еще раз спасибо, ребята.

...