ウェブサイト検索

MySQLログレベル


このチュートリアルでは、MySQLサーバーでさまざまなログレベルを有効にし、構成する方法について探ります。これにより、サーバー内でログメッセージがどのように作成されるかが決まります。

MySQL ロギング

インストールされているMySQLサーバーとその設定によって、MySQLはサーバー内のイベントのログファイルを作成します。

MySQLサーバーでは5種類のログファイルがサポートされています。これには次のものが含まれます:

  1. エラーログ – このログファイルには、MySQLサーバーの起動、実行、または停止中に発生したエラーのログが含まれています。
  2. ISAM ログ - これは管理ログレベルユーティリティの一部です。このログには、ISAM テーブルに対して行われたすべての変更が含まれています。
  3. クエリログ – 名前が示すように、このログファイルにはユーザーの接続と実行されたクエリの記録が含まれています。
  4. バイナリーログ - サーバーを変更するステートメントのログを保持します。mysqldbinlogユーティリティがこのログを処理します。
  5. スローログ – long_query_timeパラメータの値を超えるクエリのログを保持します。

注意: 上述したログのいくつかは内部のMySQL操作で使用されていることに注意してください。通常のユーザーとして、さまざまなMySQLプロバイダーはさまざまなログを抽象化する場合があります。

このチュートリアルでは、エラーログ、一般/クエリログ、およびスローログのみを知っておけば十分です。

MySQLのログ記録を有効にする

MySQLでさまざまなログレベルを設定する前に、MySQLサーバーでログ機能が有効になっていることを確認する必要があります。

まず最初に、MySQLの設定ファイルを見つけて編集してください。

MySQL 設定ファイルの場所は、システム構成、インストール方法、オペレーティングシステムなどによって異なる場合があることを忘れないでください。

sudo nano /etc/mysql/my.cnf

ログファイルに、以下のようにエントリーを追加してください:

[mysqld]
log_error=/var/log/mysql/error.log
general_log_file= /var/log/mysql/mysql.log
general_log = 1
log_slow_queries= /var/log/mysql/mysql-slow.log
long_query_time=10

上記の設定では、エラーログ、一般ログ、スローログが有効になります。また、上記の設定でターゲットパスを指定することにより、ログファイルの保存場所を変更することができます。

変更を保存してサーバーを再起動します。

Windowsでは、my.iniファイルを次のオプションで編集することでMySQLのログ記録を有効にできます。

general-log=1
general_log_file="mysql.log"
slow-query-log=1
slow_query_log_file="mysql-slow.log"
long_query_time=10
log-error="mysql.err"

同様に、ログファイルのパスやファイル名を自分の好みに変更することができます。デフォルトでは、MySQLはログファイルをデータディレクトリに保存します(Windowsのみ)。

MySQLのログレベル

MySQLは最大8つのログレベルをサポートしています。各レベルは、ログファイルに含まれる詳細やメッセージの種類を決定します。

デフォルトでは、MySQLシェルはログレベル5で実行されます。これには、エラー、警告、および情報メッセージが含まれます。

以下はサポートされているログレベルとそれぞれの内容です。

ログレベル(数値)ログレベル操作冗長性レベル
1
None
ログ記録が無効になっています
2
Internal
内部エラー1
3
Error
エラー1
4
Warning
警告1
5
Info
情報提供1
6
Debug
デバッグ2
7
Debug2
デバッグ23
8
Debug3
デバッグ34

MySQLシェルを起動するとき、–verboseパラメータを使用して詳細レベルを設定できます。

  1. 冗長性レベル0 - メッセージは表示されません。
  2. レベル 1 – 内部エラー、エラー、警告、情報メッセージ。
  3. レベル2 – レベル1のメッセージとデバッグメッセージをすべて含みます。
  4. レベル3 - レベルおよびレベル2にDebug2メッセージを追加します。
  5. レベル4 - Debug3メッセージを追加します。これには非常に詳細なログメッセージが含まれています。

シェルでのMySQLログレベルの指定

使用したいログレベルを指定するには、次のようにmysqlshコマンドを使用できます:

mysqlsh --log-level=6

ログレベルを数値として指定するか、その文字列表現として次のように指定できます:

mysqlsh --log-level=debug

注意: Windowsでは、mysqlshコマンドは「C:\Program Files\MySQL\MySQL Shell 8.0\bin」にあります。

現在のログレベルを表示するには、MySQLシェルを開いてください:

mysqlsh

シェル内で、次のコマンドを実行します:

MySQL  JS > \option -l

これには、現在のログレベルを含むMySQLシェルオプションのリストが表示されるべきです:

閉店

以上です。MySQLのログオプションを使う方法を成功裏に発見しました。MySQLのログオプションはこのチュートリアルの範囲を超えて拡張されていることを念頭に置いてください。詳細についてはドキュメントを確認してください。