[MySQL8.0]如何获取将提交sql的用户IP

MySQL8.0 如何获取将提交sql的用户IP

不同的用户使用相同的数据库账号登录有不同的IP,一般都是存到日志中,查询起来比较麻烦。
找了下似乎没有人做类似的demo,于是自己琢磨了下发现可行。
核心思路还是通过processlist去找:

select SUBSTRING_INDEX(host, ':', 1) ip_address, 
					-- 获取IP地址
       pl.id,   	-- 进程序号
       pl.HOST , 	-- IP+接口
       pl.COMMAND,  -- 命令类型
       pl.USER,		-- 使用用户
       pl.DB,		-- 使用数据库
       pl.INFO		-- SQL详情
from information_schema.processlist pl
where pl.info is not null;

个人感觉这条SQL比较有意思,其实也还是提交SQL会先拿到资源然后在processlist表里面生成该记录,再由数据库去解析执行该SQL。所以这里看起来像是先有鸡先有蛋的问题,其实不然。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值