web-dev-qa-db-ja.com

監視:mysqladmin pingは何を報告しますか?

Mysqlサーバーが稼働しているかどうかを監視しようとしています。これに使用しているコマンドは次のとおりです。

mysqladmin ping

次を返します。

mysqld is alive

これは、プロセスが現在実行されているかどうかを確認するだけですか、それともサーバーが接続を受け入れているかどうかも確認しますか?

5

「mysqladminping」は、選択したMySQLサーバーへの接続を試みます。実際のサーバーは、-hオプション(例:mysqladmin ping -h db.example.com)で指定でき、デフォルトはlocalhostです。

サーバーが応答した場合(アクセスが拒否された、または同様のメッセージが表示された場合でも)、サーバーは稼働していると見なされ、「mysqladminping」はコード0で終了します。

それ以外の場合、サーバーはダウンしていると見なされ、コード1で「mysqladminping」が存在します。

5
Tommeh

MySQLサーバーが稼働していることを確認したい場合は、実行する小さなスクリプトを作成するのが最善の方法です。

SELECT "1";

接続するためのユーザーには、少なくともUSAGE権限が必要です。これでは、データベーステーブルに問題があるかどうかはわかりませんが、アプリケーションの監視でおそらく問題がわかります。

とにかく、これがmysqladminpingが行うことである可能性は十分にあります。

3
David Pashley

「アップ」は非常に広い用語です。例えば。 pingに応答する場合がありますが、実際にはディスクの空き容量がないか、すべてのクエリがブロックされるか、毎秒クラッシュして自動的に再起動します。または、すべてのテーブルが実際にクラッシュまたはさらに悪いものとしてマークされます。ドロップされたか、datadirがシステムからアンマウントされました。

または、狂ったようにスワッピングしている可能性があり、CPUが複数のクエリによって悪用されているため、クロールがほとんどできないため、確実に「アップ」しているわけではありません。

または例: pingに応答しない場合があります。接続制限のためですが、アプリケーションは持続的接続を使用し、完全に機能します。

または例: pingに応答しない場合があります。ローカルホストでのクライアントの問題が原因ですが、繰り返しになりますが、すべてのアプリケーションで実際に問題が発生するわけではありません。

したがって、「ping」が有効な答えである場合もありますが、「サーバーが稼働しているかどうかを監視する」ことを考えるときは、常にこれらのケースを考慮する必要があります。

0
noonex