У меня проблемы с запуском службы 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
Возможно, есть лучшие места для создания каталога при запуске, но для меня это работает.