MySQL サーバー用の systemd サービス ユニット構成ファイルを作成するにはどうすればよいですか?

MySQL サーバー用の systemd サービス ユニット構成ファイルを作成するにはどうすればよいですか?

アップデート Robert Longson の提案に従って /etc/systemd/system を使用することで、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. MySQL サービスの詳細を含む systemd サービス ユニット構成ファイルを追加します。ファイルの名前は mysqld.service で、/usr/lib/systemd/system に配置されます。
shell> cd /usr/lib/systemd/system
shell> touch mysqld.service
shell> chmod 644 mysqld.service

systemdの「system」サブディレクトリがないので、mysql.serviceファイルを作成しました。直接/usr/lib/systemd にあります。残りの指示に従った後、次のようになりました。

shell> systemctl start mysqld

しかし、それは失敗しました:

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

誰か私が何を間違えたのか説明してもらえませんか? よろしくお願いします。

答え1

サービスファイルは実際には/usr/lib/systemd/systemではなく/etc/systemd/systemにあります。

サービスが失敗する理由を知りたい場合は、試すかsystemctl status mysqld、より完全なログが必要な場合は journalctl コマンドを調べてくださいjournalctl -u mysqld -S today

関連情報