
我已經在我的 Ubuntu 伺服器上安裝了 MySQL。因為我想清理我的用戶,他們目前在 MySQL 中處於活動狀態,所以我想先檢查哪些用戶以及從哪個主機連接到 MySQL 伺服器。
我唯一需要的是:哪個主機正在連線以及使用哪個使用者名稱。
我嘗試使用 tcpdump 執行此任務,但到目前為止還沒有成功。看起來很容易獲得整個查詢,但我沒有獲得上述資訊。伺服器被大量使用,如果沒有其他選項我可以啟用一般查詢日誌,但如果可能的話我想阻止這個選項。
有人可以給我一些關於如何執行這項任務的提示嗎?
答案1
- 列出目前活動的會話
在 mysql 提示字元中,您可以鍵入以下內容來顯示目前活動的會話:
mysql> show processlist;
或這個 mysql 查詢(傳回相同的資訊):
mysql> select * from information_schema.processlist;
你可能只能得到這樣的 {user,host} 對:
mysql> select User,Host from information_schema.processlist;
- 記錄並顯示查詢歷史記錄。
開啟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;
希望能幫助你。