Назад | Перейти на главную страницу

Сценарий службы mariadb не создает / var / run / mysqld

У меня проблемы с запуском службы MariaDB на сервере Centos 7, потому что каталог /var/run/mysqld/ не создается по умолчанию, как и /var/log/mysqld.log файл.

Создание этого каталога и файла с правильными разрешениями позволяет MariaDB запускаться должным образом, но при перезагрузке каталог удаляется и должен быть воссоздан.

/etc/systemd/system/multi-user.target.wants/mariadb.service запустит скрипт при запуске service mariadb start; в соответствии с этим файлом при запуске он выполняет /usr/libexec/mariadb-prepare-db-dir, где я добавил следующее:

touch /var/log/mysqld.log                
chown mysql:mysql /var/log/mysqld.log
mkdir /var/run/mysqld                    
chown mysql:mysql /var/run/mysqld        

Файл журнала создается правильно, но не каталог. Зачем ? Как мне его правильно создать, когда сервис запущен? Я думал о проблеме с разрешением, но не знаю, где найти дополнительную информацию.

Mariadb устанавливается напрямую через yum, это версия 5.5. Почему это не работает из коробки, я не понимаю.

На самом деле, Mairadb находит файл pid в /var/run/mariadb.
Тогда вам не нужно никаких других операций, просто установите pid-file=/var/run/mariadb/mysqld.pid

Недавно у меня была похожая проблема. Моим обходным решением было добавить его в crontab как root:

$ crontab -e

Добавить:

@reboot mkdir /var/run/mysqld && chown mysql:mysql /var/run/mysqld

Возможно, есть лучшие места для создания каталога при запуске, но для меня это работает.