Я использую MariaDB (v 10.3.13) на Arch Linux (Manjaro). Он работал нормально в течение последних месяцев, но теперь есть некоторые проблемы. Когда я пытаюсь перезагрузить компьютер, он зависает на
A stop job is running for MariaDB 10.3.13 database server
Время, которое должно пройти, увеличивается с каждой минутой, пока оно наконец не истечет (примерно через 20 минут).
Остановка MariaDB вручную также приводит к зависанию, когда я пытаюсь перезапустить/остановить ее с помощью
sudo systemctl stop/restart mariadb
Затем запуск sudo systemctl status mariadb
шоу
/usr/bin/mysqld (initiated by: unknown): Normal shutdown
Event Scheduler: Purging the queue. 0 events
InnoDB: FTS optimize thread exiting.
InnoDB: Starting shutdown...
InnoDB: Dumping buffer pool(s) to /var/lib/mysql/ib_buffer_pool
InnoDB: Buffer pool(s) dump completed at 190402 20:31:01
InnoDB: Waiting for page_cleaner to finish flushing of buffer pool
с каждой минутой InnoDB: Waiting for page_cleaner to finish flushing of buffer pool
добавляется еще одна строка.
Есть ли способ сбросить настройки MariaDB? Или способ получить больше информации о проблеме?
PS: Недавно я установил несколько обновлений через менеджер пакетов, после чего впервые заметил эту проблему.
Обновлять:
Когда я удаляю, перезагружаю и переустанавливаю MariaDB, я могу остановить/перезапустить MariaDB без проблем, и выключение происходит без проблем. Но после повторной загрузки я снова сталкиваюсь с вышеописанными проблемами.
решение1
После многочасовой борьбы мне наконец удалось решить проблему.
Причиной была настройка времени ( timedatectl set-local-rtc 1
) для двойной загрузки с Win10.
Из-за недавнего изменения времени часы сбились. (Записи в журнале состояния sudo systemctl status mariadb
были на 1 час вперед)
Параметр
timedatectl set-local-rtc 0
и перезагрузка решила эту проблему.
решение2
Также вы можете изменить и уменьшить TimeoutSec=300
значение тайм-аута с (5 минут) до меньшего значения в файле конфигурации службы запуска MySQL:
vi /usr/lib/systemd/system/mariadb.service
### after editing timout value in above config file you can apply it by using:
systemctl daemon-reload
Примечание: Это не исправление.или решение этой проблемы. Он просто уменьшает значение тайм-аута завершения службы. Вам следует рассмотреть возможность поиска правильного решения на основе ситуации или ошибки, вызвавшей это в вашей ОС и службе, и вернуть тайм-аут к рекомендуемому значению по умолчанию после решения проблемы.