通过 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;

希望能帮助到你。

相关内容