mariadb 服务脚本未创建 /var/run/mysqld

mariadb 服务脚本未创建 /var/run/mysqld

我在 Centos 7 服务器上启动 MariaDB 服务时遇到问题,因为/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。我不知道为什么它不能开箱即用。

答案1

实际上,Mairadb 会将 pid 文件定位在 中/var/run/mariadb
然后,你不需要任何其他操作,只需设置pid-file=/var/run/mariadb/mysqld.pid

答案2

我最近也遇到了类似的问题。我的解决方法是以 root 身份将其添加到 crontab:

$ crontab -e

添加:

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

可能有更好的位置来在启动时创建目录,但对我来说,这是可行的。

相关内容