我在 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;
希望能帮助到你。