サーチ…


リスト

  • 一般的なログ - すべてのクエリ - VARIABLE general_logを参照
  • 遅いログ - long_query_timeよりも遅いクエリ - slow_query_log_file
  • Binlog - レプリケーションとバックアップ用 - log_bin_basename
  • リレーログ - レプリケーション用
  • 一般的なエラー - mysqld.err
  • 開始/停止 - mysql.log(それほど面白くない) - log_error
  • InnoDB REDOログ - iblog *

多くのログのデフォルトの場所は、変数basedirdatadirを参照してください

いくつかのログは、他の変数によってオン/オフされます。いくつかはファイルまたはテーブルに書き込まれます。

(査読者への注:これは詳細と詳細な説明が必要です)

Documenters :Windowsと* nixの両方について、各ログタイプのデフォルトの場所と名前を含めてください。 (またはできるだけ多くの場合)

低速クエリログ

スロー・クエリー・ログは、 long_query_time秒をlong_query_timeて終了するクエリーのログ・イベントで構成されます。例えば、完了までに最大10秒。現在設定されている時間のしきい値を確認するには、次のコマンドを発行します。

SELECT @@long_query_time;
+-------------------+
| @@long_query_time |
+-------------------+
|         10.000000 |
+-------------------+

これは、 my.cnfまたはmy.iniファイルmy.cnf GLOBAL変数として設定できます。または、これは接続によって設定できますが、これは珍しいことです。値は0〜10(秒)の間で設定できます。どのような価値を使用する?

  • 10は非常に役に立たないほど高いです。
  • 2は妥協である。
  • 0.5および他の画分が可能である。
  • 0はすべてをキャプチャします。これは危険なほど高速にディスクをいっぱいにする可能性がありますが、非常に便利です。

低速問合せの取得は、オンまたはオフのいずれかで行われます。また、ログに記録されたファイルも指定されます。以下に、これらの概念を取り上げます。

SELECT @@slow_query_log; -- Is capture currently active? (1=On, 0=Off)
SELECT @@slow_query_log_file; -- filename for capture. Resides in datadir
SELECT @@datadir; -- to see current value of the location for capture file

SET GLOBAL slow_query_log=0; -- Turn Off
-- make a backup of the Slow Query Log capture file. Then delete it.
SET GLOBAL slow_query_log=1; -- Turn it back On (new empty file is created)

詳細については、MySQLのマニュアルページのSlow Query Logを参照してください。

注:slowlogのオン/オフに関する上記の情報は、5.6(?)で変更されました。古いバージョンには別の仕組みがありました。

何があなたのシステムを遅くしているかを見るための「最良の」方法:

long_query_time=...
turn on the slowlog
run for a few hours
turn off the slowlog (or raise the cutoff)
run pt-query-digest to find the 'worst' couple of queries.  Or mysqldumpslow -s t

一般的なクエリログ

General Query Logには、クライアントの接続、切断、およびクエリからの一般的な情報のリストが含まれています。これはデバッグにとって非常に重要ですが、それはパフォーマンス(引用?)の妨げになります。

一般的なクエリログの例を以下に示します。

ここに画像の説明を入力

一般ログが現在キャプチャされているかどうかを確認するには:

SELECT @@general_log; -- 1 = Capture is active; 0 = It is not.

キャプチャファイルのファイル名を確認するには:

SELECT @@general_log_file; -- Full path to capture file

ファイルのフルパスが表示されない場合、ファイルが存在する中でdatadir

Windowsの例:

+----------------------------------------------------------+
| @@general_log_file                                       |
+----------------------------------------------------------+
| C:\ProgramData\MySQL\MySQL Server 5.7\Data\GuySmiley.log |
+----------------------------------------------------------+

Linux:

+-----------------------------------+
| @@general_log_file                |
+-----------------------------------+
| /var/lib/mysql/ip-ww-xx-yy-zz.log |
+-----------------------------------+

general_log_file GLOBAL変数が変更されると、新しいログがdatadir保存されます。ただし、変数を調べることでフルパスが反映されなくなることがあります。

設定ファイルのgeneral_log_fileにエントリがない場合、デフォルトではdatadir @@hostname .logになりdatadir

キャプチャをオフにするのがベストプラクティスです。キャプチャの開始日時と終了日時を反映したファイル名を持つバックアップディレクトリにログファイルを保存します。以前のファイルを削除するのは、そのファイルのファイルシステムの移動が発生していない場合です。ログファイルの新しいファイル名を設定し、キャプチャをオンにします(下記参照)。ベストプラクティスには、現時点でキャプチャしたい場合でも慎重な判断が含まれます。通常、キャプチャはデバッグの目的でのみオンになっています。

バックアップされたログの典型的なファイルシステムファイル名は次のようになります。

/LogBackup/GeneralLog_20160802_1520_to_20160802_1815.log

ここで、日付と時刻は範囲としてのファイル名の一部です。

Windowsの場合、設定を変更して次の順序に注意してください。

SELECT @@general_log; -- 0. Not being captured
SELECT @@general_log_file; -- C:\ProgramData\MySQL\MySQL Server 5.6\Data\GuySmiley.log
SELECT @@datadir; -- C:\ProgramData\MySQL\MySQL Server 5.7\Data\
SET GLOBAL general_log_file='GeneralLogBegin_20160803_1420.log'; -- datetime clue
SET GLOBAL general_log=1; -- Turns on actual log capture. File is created under `datadir`
SET GLOBAL general_log=0; -- Turn logging off

Linuxも同様です。これらは動的な変化を表します。サーバを再起動すると、設定ファイルの設定が反映されます。

設定ファイルについては、以下の関連する変数の設定を考慮してください。

[mysqld]
general_log_file = /path/to/currentquery.log
general_log      = 1

さらに、変数log_outputは、 FILEだけでなく、 TABLE出力用に構成することもできます。そのために、 目的地をご覧ください。

MySQLのマニュアルページの一般クエリログを参照してください。

エラーログ

エラー・ログには、開始および停止情報、およびサーバーが遭遇した重要なイベントが入力されます。

その内容の例は次のとおりです。

ここに画像の説明を入力

変数log_errorは、エラー・ロギングのためのログ・ファイルへのパスが格納されます。

log_error設定ファイルエントリがない場合、システムはその値をdatadir @@hostname datadirデフォルト設定します。 log_errorは動的変数ではないことに注意してください。したがって、変更はcnfまたはiniファイルの変更とサーバーの再起動(または、ここではマニュアルページのリンクの「エラーログファイルのフラッシュと名前の変更」を参照)によって行われます。

エラーの場合、ロギングを無効にすることはできません。問題をトラブルシューティングする際にはシステムの健全性にとって重要です。また、エントリは一般クエリログと比較してまれです。

GLOBAL変数log_warningsは、サーバのバージョンによって異なる冗長レベルを設定します。次のスニペットでは、

SELECT @@log_warnings; -- make a note of your prior setting
SET GLOBAL log_warnings=2; -- setting above 1 increases output (see server version)

上記のlog_warningsは動的変数です。

cnfファイルとiniファイルの構成ファイルの変更は、次のようになります。

[mysqld]
log_error        = /path/to/CurrentError.log
log_warnings     = 2

MySQL 5.7.2では、警告レベルの冗長性を3に拡張し、GLOBAL log_error_verbosityを追加しました。再び、それは5.7.2で導入されました。動的に設定したり、変数としてチェックしたり、 cnfini設定ファイルの設定でチェックすることができます。

MySQL 5.7.2現在:

[mysqld]
log_error           = /path/to/CurrentError.log
log_warnings        = 2
log_error_verbosity = 3 

題しMySQLのマニュアルページを参照してくださいエラーログ 、特にフラッシングのためにと、エラーログファイルの名前の変更、およびに関連するバージョンとのエラーログ詳細度セクション log_warningserror_log_verbosity



Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow