ホームページ > データベース > mysql チュートリアル > MySQLが応答しない?診断と修正のための簡単なガイド

MySQLが応答しない?診断と修正のための簡単なガイド

Mary-Kate Olsen
リリース: 2024-11-22 15:01:16
オリジナル
522 人が閲覧しました

MySQL Not Responding? A Simple Guide to Diagnosing and Fixing It

データベース管理者でも開発者でも、MySQL サーバーが稼働しているかどうかを確認する方法を知っていれば、ダウンタイムを防ぎ、アプリケーションのパフォーマンスを良好に保つことができます。このガイドでは、MySQL サーバーのステータス (実行中か停止中か) を確認する簡単な方法と、一般的な問題を解決する方法を説明します。また、3 種類の MySQL クエリ ログを確認する方法と、それらがデータベースの健全性の監視や問題のトラブルシューティングに重要である理由についても説明します。

MySQL が実行中かどうかを確認する方法

MySQL サーバーがオペレーティング システムに基づいて実行されているかどうかを確認するには、さまざまなコマンドを使用できます。 Linux では、ターミナルを開いて次のように入力することで、MySQL サービスのステータスを確認できます。

systemctl status mysql
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

このコマンドは、現在のステータスや最近のログ エントリなど、MySQL サービスに関する詳細情報を提供します。あるいは、より単純な出力として、次を使用できます:

sudo service mysql status
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

Windows ユーザーの場合は、管理者としてコマンド プロンプトを開き、フィルターと組み合わせて net start コマンドを使用して、実行中のすべてのサービスをリストし、MySQL に関連するサービスのみを表示する必要があります。次のコマンドを実行します:

net start | findstr "MySQL"
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

このメソッドは、MySQL サービスが Windows マシン上でアクティブであるかどうかをすぐに通知します。

MySQL が実行されていない場合に問題をトラブルシューティングする方法

MySQL が実行されていない場合は、いくつかの手順を実行してトラブルシューティングを行い、MySQL を再起動して実行できます。

  1. 最初にログを確認します (時間が許せば)
    時間と余裕があれば、さらなるアクションを起こす前に、MySQL ログで潜在的な問題がないか確認してください。ログには、問題をより正確に診断するのに役立つ詳細なエラー メッセージと洞察が提供されます。

  2. MySQL サービスをすぐに再起動します
    時間がない場合、またはユーザーへの影響を制限するためにダウンタイムを回避する必要があり、すぐにログにアクセスできない場合は、MySQL サービスを再起動して、すぐにオンラインに戻すことができます。再起動後、ログを確認して問題の原因を理解できます。

  3. 設定ファイルを確認します
    MySQL 構成ファイル (通常は my.cnf または my.ini) が正しく設定されていることを確認してください。これらのファイルの設定が正しくないと、MySQL サーバーが起動できなくなる可能性があるため、パスの構成ミスや権限の誤りなど、潜在的な問題を確認して修正してください。

  4. ディスク容量を確認します
    MySQL はデータの保存と操作に十分なスペースを必要とするため、システムに十分なディスク容量があることを確認してください。ディスク容量が少ないとサーバーが停止したり、起動に失敗したりする可能性があるため、必要に応じて容量を解放してください。

MySQL サーバーのログを確認する方法

ログは、問題の診断、パフォーマンスの監視、MySQL サーバーの動作の理解に重要です。 MySQL が予期せず停止した場合、ログを確認すると、根本原因についての貴重な洞察が得られる可能性があります。このガイドでは、さまざまな種類の MySQL ログを確認する方法について説明します。

  • エラーログ
  • 一般的なクエリログ
  • スロークエリログ

エラーログを確認する

エラー ログには、サーバーの起動、シャットダウン、および発生したエラーに関する重要な情報が記録されます。これは、サーバーが起動していないか、正しく実行されていないかを確認する最初の場所です。

Linux で表示するには、次のコマンドを使用します:

systemctl status mysql
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

Windows では、MySQL データ ディレクトリでエラー ログ ファイルを探します。これは通常、次の場所にあります:

C:Program FilesMySQLMySQL Server 8.0data

一般的なクエリログの確認

MySQL の一般クエリ ログには、サーバーが受信したすべての SQL クエリと接続イベントおよび切断イベントが記録され、サーバーが停止する前に問題のあるクエリや異常なアクティビティを特定するのに役立ちます。このログは、すべての SQL 操作の包括的な時系列の説明を提供するため、トラブルシューティングのための貴重なツールになります。

一般的なクエリログを有効にする方法

一般クエリ ログは生成されるデータが大量になるため、デフォルトでは有効になっていません。次のコマンドを使用して、システムでこれを有効にする必要があります:

sudo service mysql status
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

ログファイルの場所を設定する

一般クエリ ログを有効にした後、ログ ファイルの保存場所を指定することが重要です。これにより、ログ エントリを簡単に見つけて管理できるようになります。 Linux では、MySQL コマンドライン クライアントで次のコマンドを使用してログ ファイルの場所を設定できます。

net start | findstr "MySQL"
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

Windows システムの場合は、次のように入力してログ ファイルの場所を設定する必要があります。

sudo cat /var/log/mysql/error.log
ログイン後にコピー
ログイン後にコピー

一般的なクエリログを表示する

Linux で一般クエリ ログを表示するには、ターミナルで cat コマンドを使用すると、ログ ファイルの内容が表示されます。

SET GLOBAL general_log = 'ON';
ログイン後にコピー
ログイン後にコピー

Windows の場合は、メモ帳などのテキスト エディタを使用してログ ファイルを開くことができます。

スロークエリログの確認

MySQL の低速クエリ ログは、データベースのパフォーマンスに悪影響を及ぼしたり、サーバーのシャットダウンを引き起こす可能性がある実行速度の遅いクエリを特定して最適化するのに役立ちます。このログを有効にすることで、指定された実行時間を超えるクエリをキャプチャでき、データベース操作の非効率性やボトルネックを検出できるようになります。

スロークエリログを有効にする方法

MySQL のスロー クエリ ログはデフォルトでは有効になっていません。ただし、これを有効にすることは、データベースのパフォーマンスを低下させる可能性がある遅いクエリを特定して修正するために重要です。有効にするには、次のコマンドを使用します:

systemctl status mysql
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

ログファイルの場所を設定する

スロークエリログが有効になったので、ログファイルを保存する場所を設定する必要があります。 Linux で使用する場合:

sudo service mysql status
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

Windows の場合:

net start | findstr "MySQL"
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

時間のしきい値を設定する

何が「遅い」クエリとみなされるかを定義するには、時間のしきい値を設定する必要があります。このしきい値は、クエリが低速としてログに記録されるまでにかかる最大時間を決定します。一般的な方法は、2 秒のしきい値から始めることです。これにより、非効率なクエリを検出することと、エントリでログが過負荷にならないことのバランスが取れます。

たとえば、実行に 2 秒以上かかるクエリをログに記録したい場合は、次のコマンドを使用して時間しきい値を設定できます。

sudo cat /var/log/mysql/error.log
ログイン後にコピー
ログイン後にコピー

スロークエリログを表示する

遅いクエリを確認し、潜在的なパフォーマンスの問題を理解するには、遅いクエリ ログを表示する必要があります。

Linux では、cat コマンドを使用します。

SET GLOBAL general_log = 'ON';
ログイン後にコピー
ログイン後にコピー

Windows の場合は、メモ帳などのテキスト エディタを使用してログ ファイルを開くことができます。

MySQL を起動および停止する方法

構成変更の適用、メンテナンスの実行、問題のトラブルシューティングなど、MySQL の起動または停止が必要となるさまざまなシナリオがあります。予期しないシャットダウンから回復し、ダウンタイムを制限するには、MySQL をすぐに再起動する必要がある場合があります。あるいは、潜在的なデータ損失やセキュリティ問題を防ぐために、異常なアクティビティやパフォーマンスに関する問題に気付いた場合は、MySQL を直ちに停止する必要がある場合があります。

Linux または macOS では、ターミナルを通じて MySQL サービスを管理できます。必要に応じて関連するコマンドを入力してください:

SET GLOBAL general_log_file = '/var/log/mysql/mysql.log';
ログイン後にコピー
SET GLOBAL general_log_file = 'C:/Program Files/MySQL/MySQL Server 8.0/data/mysql.log';
ログイン後にコピー

Windows ユーザーの場合は、管理者としてコマンド プロンプトを開く必要があります。次に、関連するコマンドを入力します:

sudo cat /var/log/mysql/mysql.log
ログイン後にコピー
SET GLOBAL slow_query_log = 'ON';
ログイン後にコピー

設定ファイルの検証

MySQL の動作は、その構成ファイルによって制御されます。通常、Unix ベースのシステムでは my.cnf、Windows では my.ini という名前が付けられます。これらのファイルの設定が正しくないと、サーバーが起動できなくなったり、動作上の問題が発生したりする可能性があります。

Linux/Unix システムの場合: my.cnf ファイルは通常、/etc/mysql/ または /etc/ にあります。それを見つけるには、次のコマンドを使用できます:

SET GLOBAL slow_query_log_file = '/var/log/mysql/slow.log';
ログイン後にコピー

Windows システムの場合: my.ini ファイルは通常、MySQL インストール ディレクトリ (多くの場合 C:ProgramDataMySQLMySQL Server X.Y) にあります。X.Y はバージョン番号を表します。ファイル エクスプローラーの検索機能を使用するか、インストール ディレクトリを直接確認して見つけることができます。

設定ファイルを見つけたら、テキストエディタで開き、設定を確認してください。 datadirsocketport などのパラメーターが正しく構成されていることを確認してください。ここでの構成に誤りがあると、起動の失敗や動作上の問題が発生する可能性があります。

ディスク容量の確認

スペースが不十分だとサーバーのクラッシュやデータ破損が発生する可能性があるため、MySQL の動作には適切なディスク スペースが非常に重要です。

Linux/Unix システムの場合: df コマンドを使用してディスク容量を確認できます:

systemctl status mysql
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

Windows システムの場合: ディスク容量を確認するには、コマンド プロンプトを開いて、wmic コマンドを使用します。

sudo service mysql status
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー
ログイン後にコピー

このコマンドは、各ドライブの合計容量と空き容量を表示します。または、Win R を押し、diskmgmt.msc と入力して Enter を押して、ディスク管理ツールを使用することもできます。このツールは、ディスク使用量をグラフィカルに表示します。

ディスク容量を定期的に監視することで、MySQL が効果的に動作するための十分なスペースが確保され、予期しないシャットダウンやパフォーマンスの低下が防止されます。

ステータス変数とは何ですか?

MySQL サーバーのステータス変数は、MySQL サーバーの状態と機能に関する重要な情報を提供します。これらはサーバーのアクティビティに関する即時のメトリクスを提供し、サーバーのパフォーマンスに影響を与えることなく操作を監視できるようにします。

重要な InnoDB データやバッファの詳細など、これらの変数の詳細については、「MySQL サーバー ステータス変数リファレンス」を参照してください。

以上がMySQLが応答しない?診断と修正のための簡単なガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート