Linux サーバーでデータベースを管理する際、様々な理由で mysqld サービスが予期せず停止することは好ましくない状況です。このガイドでは、MySQL がどの理由であれ停止した場合に、スクリプトと crontab を使用してそれを自動的に再起動する方法を学びます。
何らかの理由で、mysqld デーモンが特定の時間に突然停止し、自動的に再起動しないことがあります。サーバーのログがあまり役立たなかったため、mysqld サービスが実行されているかどうかを定期的に確認し、それがアクティブでない場合は crontab を介して再起動する解決策を探しました。
キュプリン
MySQL が停止した場合、それを自動的に再起動する方法は?[Linux]
通常、MariaDB を使用した MySQL サーバーでは、mysqld サービスは異なる理由で停止した場合に自動的に再起動するはずです。それが発生しない場合、以下のスクリプトは定期的に mysqld デーモンが実行中であるかどうかを確認し、停止している場合は MySQL を自動的に再起動するのに役立ちます。
私のテストはOS上で行われます Debian 12, MariaDB 10.11.4.
1. コンソールを開き、mysqld サービスが停止した場合にそれを開始する将来のスクリプト用のファイルを作成します。
私はエディターを使用することを好みます。」nano
"
sudo nano /usr/local/bin/autostart_mysql.sh
2. 新しいファイルで「autostart_mysql.sh
” 以下のスクリプトをコピーします。
#!/bin/bash
if systemctl is-active mysqld > /dev/null; then
echo "The mysqld service is running."
else
echo "The mysqld service is not running. Restarting..."
systemctl start mysqld
fi
3. 新しいファイルを保存します。autostart_mysql.sh
」を選択し、実行権限を設定します。
chmod +x /usr/local/bin/autostart_mysql.sh
4. 「」に移動します。/usr/local/bin/
” そして次のコマンドでスクリプトをテストします。”./autostart_mysql.sh
"
現在、開始しているスクリプト MySQL 自動的に実行されるのは、手動で実行された場合のみです。 crontab に追加されると、当社が設定した時間間隔で定期的に実行されます。 私が選んだ脚本は「autostart_mysql.sh
」を 3 分ごとに実行します。
スクリプトを crontab に追加する方法は?
設定した時間間隔で定期的に実行するスクリプトを crontab に追加するには、次のコマンドを実行します。 crontab -e
、ファイルの最後にコマンドラインを追加します。
*/3 * * * * /usr/local/bin/autostart_mysql.sh
*/3
スクリプトが 3 分ごとに実行されるように指定します。
crontab を保存し、エディタを終了します。
この手順の後、サービスを確認してください mysqld
これは 3 分ごとに実行され、サービスが停止した場合は自動的に開始されます。
サポートやその他の説明が必要な場合は、喜んでコメントにお答えします。