我在 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
可能有更好的位置来在启动时创建目录,但对我来说,这是可行的。