Web アプリケーションと MySQL クエリをデバッグするために、MySQL クエリ ログを有効にしました。ただし、これは tail や grep を実行するのにあまり適した形式ではありません。理想的には、特定のユーザーからのクエリ、または特定のデータベースへのクエリのみを表示できるようにしたいと思います。MySQL クエリ ログが各行にデータベースまたはユーザーを出力すれば、それを grep できます。特定の日付に何が起こったかを確認したい場合もありますが、MySQL クエリ ログは各行に日時を出力しないため、これは困難です。
MySQL クエリ ログを tail/grep などでより適切に処理する方法はありますか?
答え1
おそらく mk-query-digest を使うべきでしょう。これは非常に強力です。
答え2
あなたがしようとしていること、つまり単一のユーザーのクエリをログに記録することは、MySQL プロキシ基本的に、これは MySQL サーバーとクライアントの間に配置できるサービスです。設定した基準に基づいてデータをログに記録したり操作したりする方法に関するコード サンプルが多数あります。
とにかく、これを行うためのツールは知りません。必要なのは、mysql ログ パーサー ライブラリを見つけて、そのライブラリを使用して必要なデータを抽出するスクリプトを作成することです。