1. ホーム
  2. マイスル

[解決済み】MySQLのクエリログを有効にする方法は?

2022-04-17 04:05:05

質問

クライアントから受け取った各SQLクエリ文とそのクエリ文が送信された時間をログに記録するMySQL機能を有効にするにはどうすればよいですか? phpmyadminまたはNaviCatで行うことができますか? どのようにログを解析すればよいですか?

どのように解決するのですか?

まず 忙しいサーバーでは、このログファイルが非常に大きくなる可能性があることを覚えておいてください。

mysql 5.1.29の場合。

クエリログを有効にするには、次のように記述します。 /etc/my.cnf の中に [mysqld] セクション

log   = /path/to/query.log  #works for mysql < 5.1.29

また、MySQLコンソールから有効にする場合

SET general_log = 1;

参照 http://dev.mysql.com/doc/refman/5.1/en/query-log.html

mysql 5.1.29+用

mysql 5.1.29+では log オプションは非推奨です。ログファイルを指定し、ログを有効にするには、my.cnf の [mysqld] セクションを参照してください。

general_log_file = /path/to/query.log
general_log      = 1

また、MySQL コンソールからログを有効にすることもできます (ログファイルの場所を何らかの方法で指定するか、デフォルトの場所を見つける必要があります)。

SET global general_log = 1;

また、遅いクエリやインデックスを使用しないクエリのみを記録するオプションも用意されていることに注意してください。