@maytilex

После случайной, рекурсивной смены прав/группы и пользователей на файлы и папки не запускается mysql, как исправить?

Случайно запустил рекурсивную смену прав с использование какого-то там бита (4777) и в довесок смену пользователя:группы на все папки и файлы внутри папки "var", ибо DataLife Engine не хотела загружать файлы на сервер.
Теперь, после смены прав/группы/пользователя на все файлы и папки внутри папки "var" - не запускается mysql

'sudo systemctl start mysql.service' выдаёт следующее:
Job for mysql.service failed because the control process exited with error code.
See "systemctl status mysql.service" and "journalctl -xe" for details.


"systemctl status mysql.service" выдаёт следующее:
mysql.service - MySQL Community Server
     Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Fri 2023-05-05 09:35:06 UTC; 3min 9s ago
    Process: 1678 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
    Process: 1686 ExecStart=/usr/sbin/mysqld (code=exited, status=1/FAILURE)
   Main PID: 1686 (code=exited, status=1/FAILURE)
     Status: "Server shutdown complete"
      Error: 2 (No such file or directory)


"journalctl -xe" выдаёт следующее:
May 05 09:40:51 v921255420.local mysqld[2011]: 2023-05-05T09:40:51.785084Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.32-0ubuntu0.20.04.2)  (Ubuntu).
May 05 09:40:51 v921255420.local systemd[1]: mysql.service: Main process exited, code=exited, status=1/FAILURE
-- Subject: Unit process exited
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- An ExecStart= process belonging to unit mysql.service has exited.
--
-- The process' exit code is 'exited' and its exit status is 1.
May 05 09:40:51 v921255420.local systemd[1]: mysql.service: Failed with result 'exit-code'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- The unit mysql.service has entered the 'failed' state with result 'exit-code'.
May 05 09:40:51 v921255420.local systemd[1]: Failed to start MySQL Community Server.
-- Subject: A start job for unit mysql.service has failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- A start job for unit mysql.service has finished with a failure.
--
-- The job identifier is 2843 and the job result is failed.
May 05 09:40:51 v921255420.local systemd[1]: mysql.service: Scheduled restart job, restart counter is at 5.
-- Subject: Automatic restarting of a unit has been scheduled
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- Automatic restarting of the unit mysql.service has been scheduled, as the result for
-- the configured Restart= setting for the unit.
May 05 09:40:51 v921255420.local systemd[1]: Stopped MySQL Community Server.
-- Subject: A stop job for unit mysql.service has finished
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- A stop job for unit mysql.service has finished.
--
-- The job identifier is 2903 and the job result is done.
May 05 09:40:51 v921255420.local systemd[1]: mysql.service: Start request repeated too quickly.
May 05 09:40:51 v921255420.local systemd[1]: mysql.service: Failed with result 'exit-code'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- The unit mysql.service has entered the 'failed' state with result 'exit-code'.
May 05 09:40:51 v921255420.local systemd[1]: Failed to start MySQL Community Server.
-- Subject: A start job for unit mysql.service has failed
-- Defined-By: systemd
-- Support: http://www.ubuntu.com/support
--
-- A start job for unit mysql.service has finished with a failure.
--
-- The job identifier is 2903 and the job result is failed.
May 05 09:40:53 v921255420.local sudo[2012]: maytilex : TTY=pts/0 ; PWD=/var ; USER=root ; COMMAND=/usr/bin/journalctl -xe
May 05 09:40:53 v921255420.local sudo[2012]: pam_unix(sudo:session): session opened for user root by maytilex(uid=0)


Сменил пользователя:группу папке и подпапкам/файлам в 'var/lib/mysql' на mysql:mysql, не помогло
Права такие-же, как и были выставлены при их случайной смене:
drwxrwxrwx 10 mysql  mysql  4096 May  5 09:40 mysql


У меня ещё попутно стоит WireGuard, как личный VPN и он тоже не работает
Подобное поведение уже было и я что-то сделал того, всё заработало, но сейчас я не могу решить вторые сутки, не знаю, куда копать. Помогите пожалуйста.
  • Вопрос задан
  • 145 просмотров
Пригласить эксперта
Ответы на вопрос 2
на все папки и файлы внутри папки "var",
Это капец... необдуманно.
Ладно, мысль такая:
1. Выполняем переименование директории:
sudo mv /var/lib/mysql /var/lib/mysql-broken
2. Переименовываем директорию конфигурации /etc/mysql аналогично.
3. Восстанавливаем директорию данных из пакета переустановкой пакета:
apt-get -o Dpkg::Options::="--force-confmiss" install --reinstall mysql-common
apt-get -o Dpkg::Options::="--force-confmiss" install --reinstall mysql-server

То есть мы сначала восстановили пакеты по умолчанию. Они должны содержать правильные права доступа на файлы в /var/lib/mysql , /etc/mysql.
Далее, сравниваем права директорий и файлов с директориями с суффиксом -broken и восстанавливаем правильные.
По окончанию удаляем установленные с пакета и переименовываем с суффиксом -broken на прежние места.
Пробуем запустить сервер и смотрим на ошибки. Исправляем пока не запустится. Как-то так.
Писал с телефона, не проверял.

Добавлено
С другими пакетами аналогично.
Порой проще переустановить с нуля чем исправлять.
Ответ написан
martin74ua
@martin74ua Куратор тега MySQL
Linux administrator
в rpm есть команда rpm --setperms -a
которая восстановит на все системные файлы права из пакетов

в debian подобную команду не знаю, скорее всего ее нет

Если у вас rpm-based дистрибутив - восстановите права и больше так не делайте

В случае debian\ubunta - либо восстанавливайте ручками, по образцу с соседней системы, либо переустановка
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы