Linux サーバー上で発生した MySQL クエリをトレースするにはどうすればよいでしょうか?
たとえば、何らかのリスナーを設定し、Web ページを要求してエンジンが実行したすべてのクエリを表示したり、実稼働サーバー上で実行されているすべてのクエリを表示したりしたいのですが、どうすればよいでしょうか?
ベストアンサー1
すべてのクエリをログ ファイルに簡単に記録できます。
mysql> SHOW VARIABLES LIKE "general_log%";
+------------------+----------------------------+
| Variable_name | Value |
+------------------+----------------------------+
| general_log | OFF |
| general_log_file | /var/run/mysqld/mysqld.log |
+------------------+----------------------------+
mysql> SET GLOBAL general_log = 'ON';
クエリを実行します(任意のデータベースで)。Grepまたはその他の方法で調べます/var/run/mysqld/mysqld.log
それから忘れないで
mysql> SET GLOBAL general_log = 'OFF';
そうしないと、パフォーマンスが急激に低下し、ディスクがいっぱいになってしまいます。