如何为 MySQL 服务器创建 systemd 服务单元配置文件?

如何为 MySQL 服务器创建 systemd 服务单元配置文件?

更新 我能够按照 Robert Longson 的建议使用 /etc/systemd/system exist 创建 mysqld.service 文件

现在我的问题变了。当我启动服务时,它失败了。我运行了systemctl status mysqld.service,输出如下:

   Loaded: loaded (/etc/systemd/system/mysqld.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Sun 2020-03-29 19:01:25 CDT; 38s ago
     Docs: man:mysqld(7)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 9251 ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --daemonize --pid
mysqld.service: Service hold-off time over, scheduling restart.
mysqld.service: Scheduled restart job, restart counter is at 5.
Stopped MySQL Server.
mysqld.service: Start request repeated too quickly.
mysqld.service: Failed with result 'exit-code'.
mysqld.service: Failedto start MySQL Server

我尝试在安装 MySQL Server 5.7 后首次使用 systemd 启动它。手册上说要在 /usr/lib/systemd/system 中创建一个配置文件但该子目录不存在(我使用的是 Ubuntu 18.04)。我遵循以下指南:

https://dev.mysql.com/doc/mysql-secure-deployment-guide/5.7/en/secure-deployment-post-install.html#secure-deployment-systemd-startup

要配置 MySQL 安装以与 systemd 一起使用:

  1. 添加一个 systemd 服务单元配置文件,其中包含有关 MySQL 服务的详细信息。该文件名为 mysqld.service,位于 /usr/lib/systemd/system。
shell> cd /usr/lib/systemd/system
shell> touch mysqld.service
shell> chmod 644 mysqld.service

由于我没有 systemd 的“系统”子目录,因此我仅创建了 mysql.service 文件直接地在 /usr/lib/systemd 中。按照其余说明操作后,我得到了:

shell> systemctl start mysqld

但失败了:

Failed to enable unit: Unit file mysqld.service does not exist.

有人能解释一下我做错了什么吗?谢谢。

答案1

服务文件实际上位于 /etc/systemd/system 中,而不是 /usr/lib/systemd/system 中

如果您想找出服务失败的原因,您可以尝试systemctl status mysqld查看 journalctl 命令,或者获取更完整的日志journalctl -u mysqld -S today

相关内容