GNU/Linux >> Linux の 問題 >  >> Cent OS

systemd Linux ディストリビューションで MySQL が systemctl の使用を開始できない

問題

systemctl を使用して MySQL を起動しようとすると、起動に失敗します。例:

# systemctl status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
# systemctl start mysqld
Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.

解決策

これには複数の原因が考えられます。いくつかの (ただしこれに限定されない) 例は次のとおりです:

  • MySQL 構成ファイルの構成オプションのタイプミス。
  • MySQL 構成ファイルに使用されなくなったオプションが存在する。
  • ファイル システム レベルの権限が正しくありません。

MySQL が起動しない原因となっているエラーを調査するには、いくつかのソースを使用できます。

1. MySQL エラー ログ

デフォルトでは、これは /var/log/mysqld.log にあります ただし、log-error の場合は別の場所にある可能性があります オプションは、MySQL 構成ファイルで設定されます。これは開始するのに最適な場所ですが、エラーによっては、起動プロセスが MySQL エラー ログに書き込むのに十分ではない場合もあります。

2. 「systemctl status mysqld」の出力を確認

「systemctl status mysqld」の出力も、失敗の原因を特定するのに役立ちます。

# systemctl status mysqld

3. systemd ジャーナル

systemd ジャーナルは、障害の根本原因を突き止めるのに役立ちます。たとえば、以下を使用して対話的に閲覧できます:

# journalctl -xe

仕訳帳をアップロードしてベンダーに分析してもらう必要がある場合は、その場所を特定する必要があります。これはシステム固有です。たとえば、デフォルト設定では、CentOS/RHEL 7 のジャーナルは /run/log/journal/ の下のサブディレクトリにあります。 たとえば、/run/log/journal/1ffd55f216ea46bd82d0f144065cc29b/system.journal です。別の場所は /var/log/journal かもしれません。

または、次のように日誌をエクスポートできます:

# journalctl > journal.log

エラー メッセージが特定されたら、それを使用して根本原因を調査します。


Cent OS
  1. トラブルシューティングツールとしてsystemdの使用を開始します

  2. systemctlコマンドを使用してsystemdユニットを管理する

  3. LinuxでSystemctlを使用してSystemdサービスを管理する方法

  1. 使い始める5つのLinuxコマンド

  2. Ansibleを使用してRockyLinux/Centos8にMysql8をインストールして初期化する

  3. Systemd を使用して複数の MySQL インスタンス用に個別の Override.conf を構成する方法

  1. Linux – Gnomeターミナルが起動しない?

  2. Linux – Default.targetなしでSystemdを開始するにはどうすればよいですか?

  3. root 以外のユーザーとして Systemd を使用して MySQL を管理する