透過 tcpdump(或其他擷取工具)連接到 MySQL 伺服器以取得使用者名稱和 IP 位址

透過 tcpdump(或其他擷取工具)連接到 MySQL 伺服器以取得使用者名稱和 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;

希望能幫助你。

相關內容