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

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

MySQLの最後の実行クエリをライブフィード形式で表示するには?

端末ウィンドウを開いたままにしたい。何かを実行するたびに、MySQLクエリが画面に表示されます。 tailコマンドを使用してこれを行うことができることを知っていますが、MySQLログがどこに保存されているのかわかりません。 mysqladmin procを実行することもできますが、継続的なリアルタイムフィードバックを提供しません。

答え1

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

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

my.cnf(通常/etc/my.cnf)にコピーして再起動します。その後、必要に応じて尾を付けることができます。時間の経過とともにログが大幅に大きくなる可能性があるため、必ずしもこれを行うことをお勧めしません。

前述のように、2番目のオプションはmysqladmin procでwatchを使用することです。たとえば、次のように使用できます。

 watch -n.5 'mysqladmin proc stat'

0.5秒ごとにプロセスのリストと状態を表示します。特定の要件に合わせて -n.5 を変更できます。 (時には役に立つ可能性がある追加情報を提供するために行にstatを追加することをお勧めします。)

答え2

すべてのクエリは、システムの「.mysqlhistory」というファイルに書き込まれます。次のコマンドを実行して、データベースで実行されているクエリを事前に表示できます。

検索/-名前 ".mysqlhistory" -exec 'tail -f'

関連情報