如何通过MySQL性能模式查询特定用户最近一次登录时间?
- 内容介绍
- 文章标签
- 相关推荐
本文共计824个文字,预计阅读时间需要4分钟。
MySQL数据库中,要记录用户最后登录时间,可以将performance_schema.accounts表中的LAST_SEEN字段应用到系统表中。这个字段记录了连接最后活跃的时间,而非认证成功的那一瞬间。默认情况下,该字段是关闭的,可以直接开启而不需要等于登录时间。
- 必须先启用
performance_schema(5.6+ 默认开,但某些部署被手动关了) -
accounts表只在连接建立后才更新LAST_SEEN,空闲连接超时断开后该值不会重置为登录时刻 - 如果用户连上来只做
SELECT 1就断开,LAST_SEEN就是那条语句执行时间,误差可能达秒级
如何真正拿到用户首次认证成功的时间?
靠 performance_schema 的 events_connections_history_long 表,它会记录每次连接的完整生命周期事件,包括 connect 类型事件——这才是登录成功的标志。
本文共计824个文字,预计阅读时间需要4分钟。
MySQL数据库中,要记录用户最后登录时间,可以将performance_schema.accounts表中的LAST_SEEN字段应用到系统表中。这个字段记录了连接最后活跃的时间,而非认证成功的那一瞬间。默认情况下,该字段是关闭的,可以直接开启而不需要等于登录时间。
- 必须先启用
performance_schema(5.6+ 默认开,但某些部署被手动关了) -
accounts表只在连接建立后才更新LAST_SEEN,空闲连接超时断开后该值不会重置为登录时刻 - 如果用户连上来只做
SELECT 1就断开,LAST_SEEN就是那条语句执行时间,误差可能达秒级
如何真正拿到用户首次认证成功的时间?
靠 performance_schema 的 events_connections_history_long 表,它会记录每次连接的完整生命周期事件,包括 connect 类型事件——这才是登录成功的标志。

