すべてのmysqlクエリをログファイルに記録する方法は?


17

Wampサーバー環境でMysql 5.6.12を使用しています。今、私はすべてのクエリを「.log」ファイルに記録したい、PHPまたはPHPMyAdminから実行されているクエリ、私はそれらを記録したい...

回答:


20
[mysqld]
# Set Slow Query Log
long_query_time = 1
slow_query_log = 1
slow_query_log_file = /usr/log/slowquery.log
log_queries_not_using_indexes = 1

#Set General Log
general_log = on
general_log_file=/usr/log/general.log

general_log本番サーバーでの有効化にはオーバーヘッドがあるため、回避する必要があります。問題のあるクエリはから確認できslow logます。


1
私にとっては、「general_log = on」の代わりに「general_log = 1」を使用する必要がありました。
GuyPaddock

mysql 5.6.7を使用して、Wamp Serverで作業しました。変更しなければならなかったのは、tjeファイルへのパス、私の場合はC:\ wamp \ logs \ mysql_query.logだけでした。
マリオロドリゲス

なぜこれらすべての設定値なのですか?ただ、general_logかつgeneral_log_file十分です。
ローレント

8

これはおそらく一時的にのみ実行したいタイプなので、設定ファイル経由ではなくシェルから実行すると便利です。

> set global general_log_file = "/var/log/mysql/queries.log";
> set global general_log = "ON";
[wait some time, hit some pages, whatever]
> set global general_log = "OFF";

5

これらの2行をmy.cnfに入れます。

[mysqld]

general_log     = on
general_log_file=/users/ugrad/linehanp/mydb/logfile.txt

これにより、PHP / PHPMyAdminだけでなく、任意のソースからサーバーへのすべてのクエリが記録されます。

ただし注意してください-一般ログを有効にすると、サーバーに大きな負荷がかかる可能性があります。短期間/デバッグのみに控えめに使用します。

ドキュメントはこちらから入手できます。あちらこちら:

一般クエリログを無効または有効にするか、実行時にログファイル名を変更するには、グローバルなgeneral_logおよびgeneral_log_fileシステム変数を使用します。general_logを0(またはOFF)に設定してログを無効にするか、1(またはON)に設定して有効にします。general_log_fileを設定して、ログファイルの名前を指定します。

そう、

general_log     = on

そして

general_log     = 1

同義語です!


私にとっては、「general_log = on」の代わりに「general_log = 1」を使用する必要がありました。
GuyPaddock

@GuyPaddockどのバージョンのMySQLを使用していますか?
ベレース14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.