以前実行した MySQL クエリのリストをライブ フィード形式で表示するにはどうすればよいですか?

以前実行した MySQL クエリのリストをライブ フィード形式で表示するにはどうすればよいですか?

MySQL で最後に実行されたクエリをライブ フィード形式で表示するにはどうすればよいですか?

ターミナル ウィンドウを開いたままにして、何かが実行されるたびに MySQL クエリが画面に表示されるようにしたいです。tail コマンドで実行できることはわかっていますが、MySQL ログがどこに保存されるかわかりません。mysqladmin proc も実行できますが、継続的なライブ フィードは得られません。

答え1

ここではいくつかのオプションがあります。以下を追加することで、MySQL の一般的なクエリ ログを有効にすることができます。

 log = /path/to/your/log.log

my.cnf (通常は /etc/my.cnf) に追加して再起動します。その後、必要に応じて tail を実行できます。ログは時間の経過とともにかなり大きくなる可能性があるため、必ずしもこれをお勧めするわけではありません。

2 番目のオプションは、おっしゃるとおり、watch を mysqladmin proc と組み合わせて使用​​することです。たとえば、次のように使用できます。

 watch -n.5 'mysqladmin proc stat'

プロセス リストとステータスを 0.5 秒ごとに表示します。-n.5 は、特定のニーズに合わせて変更できます (私は、追加情報を提供するために行に stat を追加することを好みます。これは役立つ場合があります)。

答え2

すべてのクエリは、システム上の「.mysqlhistory」というファイルに書き込まれます。以下のコマンドを実行すると、DB で実行されているクエリをアクティブに表示できます。

検索 / -name ".mysqlhistory" -exec 'tail -f'

関連情報