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'