- Вопрос или проблема
- Ответ или решение
- Решение проблемы: "Job for mysql.service failed because the control process exited with error code"
- Введение
- Шаг 1: Проверка состояния службы MySQL
- Шаг 2: Просмотр логов
- Шаг 3: Проверьте директорию логов MySQL
- Шаг 4: Настройки AppArmor
- Шаг 5: Проверка конфигурации MySQL
- Шаг 6: Перезапуск службы MySQL
- Заключение
Вопрос или проблема
Сервер MySQL работал нормально прошлой ночью, но сегодня утром, когда я попытался получить доступ к серверу Bugzilla, я обнаружил, что он не работает. Я попытался его запустить, но получил:
Задание для mysql.service не удалось, потому что управляющий процесс завершился с
кодом ошибки. См. "systemctl status mysql.service" и "journalctl -xe" для
подробностей.
Я сделал несколько поисков в Google и нашел множество вопросов. Я попробовал некоторые ответы, но сервер все еще не работает. У меня достаточно места,
root@GBRTEF01LX005:/home/bzadmin# df -h
Файловая система Размер Используемое Доступно Использование% Смонтировано на
udev 2.0G 0 2.0G 0% /dev
tmpfs 396M 5.8M 390M 2% /run
/dev/mapper/CMS--UBN--TEMPLATE--1--vg-root 75G 4.8G 66G 7% /
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup
/dev/sda1 472M 106M 342M 24% /boot
tmpfs 396M 0 396M 0% /run/user/1001
Я также добавил больше пространства для обмена для InnoDB,
innodb_buffer_pool_size = 20M
что является одним из предложений, которые я нашел, а в заключение вот последние 30 строк journalctl -xe
,
root@GBRTEF01LX005:/home/bzadmin# journalctl -xe | tail -30
25 фев 16:26:23 GBRTEF01LX005 systemd[1]: Не удалось запустить MySQL Community Server.
-- Тема: Услуга mysql.service завершила работу с ошибкой
-- Определено: systemd
-- Поддержка: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Услуга mysql.service завершила работу с ошибкой.
--
-- Результат - неудача.
25 фев 16:26:23 GBRTEF01LX005 systemd[1]: mysql.service: Услуга вошла в состояние неудачи.
25 фев 16:26:23 GBRTEF01LX005 systemd[1]: mysql.service: Завершилась с результатом 'exit-code'.
25 фев 16:26:23 GBRTEF01LX005 systemd[1]: mysql.service: Время ожидания службы истекло, планируется перезапуск.
25 фев 16:26:23 GBRTEF01LX005 systemd[1]: Остановлен MySQL Community Server.
-- Тема: Услуга mysql.service завершила завершение работы
-- Определено: systemd
-- Поддержка: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Услуга mysql.service завершила завершение работы.
25 фев 16:26:23 GBRTEF01LX005 systemd[1]: Запуск MySQL Community Server...
-- Тема: Услуга mysql.service начала запуск
-- Определено: systemd
-- Поддержка: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
--
-- Услуга mysql.service начала запуск.
25 фев 16:26:23 GBRTEF01LX005 audit[11846]: AVC apparmor="DENIED" операция="open" профиль="/usr/sbin/mysqld" имя="/proc/11846/status" pid=11846 comm="mysqld" запрашиваемая_маска="r" запрещенная_маска="r" fsuid=107 ouid=107
25 фев 16:26:23 GBRTEF01LX005 audit[11846]: AVC apparmor="DENIED" операция="open" профиль="/usr/sbin/mysqld" имя="/sys/devices/system/node/" pid=11846 comm="mysqld" запрашиваемая_маска="r" запрещенная_маска="r" fsuid=107 ouid=0
25 фев 16:26:23 GBRTEF01LX005 audit[11846]: AVC apparmor="DENIED" операция="open" профиль="/usr/sbin/mysqld" имя="/proc/11846/status" pid=11846 comm="mysqld" запрашиваемая_маска="r" запрещенная_маска="r" fsuid=107 ouid=107
25 фев 16:26:23 GBRTEF01LX005 kernel: audit: type=1400 audit(1519575983.239:317): apparmor="DENIED" операция="open" профиль="/usr/sbin/mysqld" имя="/proc/11846/status" pid=11846 comm="mysqld" запрашиваемая_маска="r" запрещенная_маска="r" fsuid=107 ouid=107
25 фев 16:26:23 GBRTEF01LX005 kernel: audit: type=1400 audit(1519575983.239:318): apparmor="DENIED" операция="open" профиль="/usr/sbin/mysqld" имя="/sys/devices/system/node/" pid=11846 comm="mysqld" запрашиваемая_маска="r" запрещенная_маска="r" fsuid=107 ouid=0
25 фев 16:26:23 GBRTEF01LX005 kernel: audit: type=1400 audit(1519575983.239:319): apparmor="DENIED" операция="open" профиль="/usr/sbin/mysqld" имя="/proc/11846/status" pid=11846 comm="mysqld" запрашиваемая_маска="r" запрещенная_маска="r" fsuid=107 ouid=107
25 фев 16:26:25 GBRTEF01LX005 systemd[1]: mysql.service: Главный процесс завершился, код=exited, статус=1/FAILURE
Любая помощь будет весьма признательна! спасибо.
Хосе
Я столкнулся с этой ошибкой на Armbian 20.08.5 Bionic с Linux 5.4.65.
Проблема заключалась в отсутствующей директории логов в /var/log/mysql
, что было указано в записи журнала в /var/log/syslog
. Создание директории /var/log/mysql
с владельцем mysql
и группой adm
исправило это для меня.
mkdir /var/log/mysql
chown mysql:adm /var/log/mysql
# запустите mysql с вашей системой инициализации (например, systemctl start mysql)
Ответ или решение
Решение проблемы: "Job for mysql.service failed because the control process exited with error code"
Введение
Сообщение об ошибке "Job for mysql.service failed because the control process exited with error code" может возникнуть в различных ситуациях, когда служба MySQL не может быть запущена. Данная инструкция направлена на определение причин и решение проблемы на основе предоставленных вами данных.
Шаг 1: Проверка состояния службы MySQL
Для начала стоит проверить состояние службы MySQL с помощью команды:
systemctl status mysql.service
Эта команда предоставит информацию о текущем состоянии службы и возможные ошибки, которые могли произойти в процессе запуска.
Шаг 2: Просмотр логов
Второй важный шаг — анализ логов. Вы уже использовали команду:
journalctl -xe
И получили, что в логах присутствуют сообщения об ошибках, связанных с AppArmor:
apparmor="DENIED" operation="open" profile="/usr/sbin/mysqld" ...
Эти ошибки указывают на то, что служба MySQL не имеет доступа к определённым ресурсам системы, что может вызвать сбой.
Шаг 3: Проверьте директорию логов MySQL
Сообщения об ошибках также могут указывать на отсутствие директории, которая отвечает за хранение логов MySQL. Проверьте, существует ли директория /var/log/mysql
. Если она отсутствует, создайте её:
mkdir /var/log/mysql
chown mysql:adm /var/log/mysql
Эти команды создадут необходимую директорию и установят правильные права доступа.
Шаг 4: Настройки AppArmor
Если проблема связана с AppArmor, возможно, потребуется внести изменения в профиль AppArmor для MySQL. Профили AppArmor можно настраивать, чтобы разрешить доступ к необходимым ресурсам. Для этого отредактируйте файл профиля, который обычно находится в /etc/apparmor.d/usr.sbin.mysqld
. Добавьте необходимые разрешения и перезагрузите AppArmor:
sudo systemctl reload apparmor
Шаг 5: Проверка конфигурации MySQL
Также стоит проверить конфигурацию MySQL на наличие ошибок. Откройте файл конфигурации (/etc/mysql/my.cnf
или аналогичный) и убедитесь, что все параметры указаны правильно. Обратите внимание на параметр innodb_buffer_pool_size
, который в вашем случае установлен в 20М. Если у вас достаточно ресурсов, попробуйте увеличить этот параметр.
Шаг 6: Перезапуск службы MySQL
После всех предпринятых действий попробуйте снова запустить службу:
sudo systemctl start mysql.service
Заключение
Если после выполнения всех этих шагов проблема не устранена, рекомендуется исследовать дополнительные логи, такие как /var/log/mysql/error.log
, чтобы получить более детальную информацию о том, что может идти не так. Правильная диагностика и решение проблемы являются ключом к восстановлению работы MySQL, что, в свою очередь, положительно скажется на доступности вашего приложения, такого как Bugzilla.
Если у вас остались вопросы или возникли дополнительные затруднения, стоит обратиться за помощью на соответствующие форумы или к профессиональным сервисам технической поддержки.