MySQLサーバーに接続してtcpdump(または他のキャプチャツール)を介してユーザー名とIPアドレスを取得します。

MySQLサーバーに接続してtcpdump(または他のキャプチャツール)を介してユーザー名とIPアドレスを取得します。

Ubuntu サーバーに MySQL をインストールしました。現在 MySQL でアクティブなユーザーをクリーンアップしたいので、まずどのユーザーがどのホストから MySQL サーバーに接続しているかを確認したいと思います。

必要なのは、どのホストが接続しているか、どのユーザー名が使用されているかだけです。

tcpdump を使用してこのタスクを実行しようとしましたが、今のところうまくいきません。クエリ全体を取得するのは簡単そうですが、上記の情報は取得できません。サーバーは頻繁に使用されているため、他のオプションがない場合は一般的なクエリ ログを有効にできますが、可能であればこのオプションを無効にしたいと思います。

このタスクを実行する方法についてヒントを持っている人はいますか?

答え1

  1. 現在アクティブなセッションを一覧表示する

mysql プロンプトで次のように入力すると、現在アクティブなセッションが表示されます。

mysql> show processlist;

または、次の MySQL クエリ (同じ情報を返します) :

mysql> select * from information_schema.processlist;

そして、次のように {user,host} ペアのみを取得できます。

mysql> select User,Host from information_schema.processlist;
  1. クエリ履歴をログに記録して表示します。

MySQLクエリログをオンにする

set global log_output = 'table';
set global general_log = 'on';

実行されたすべてのクエリを表示する

select * from mysql.general_log;

タイムスタンプ、host_user、および関連クエリを確認します。

select event_time,user_host,argument from mysql.general_log;

それが役に立てば幸い。

関連情報