暂无图片
MySQL8.0如何查询 异常断开的 客户端 是哪个IP, 哪个数据库用户名
我来答
分享
XY
2024-06-18
MySQL8.0如何查询 异常断开的 客户端 是哪个IP, 哪个数据库用户名

客户有一个需求:

MySQL 的 database对象 发生改变,相应的客户端连接数据库肯定会报 Unknown database xxx。现在需要统计这些连接异常的客户端IP是多少,有没有很好的办法


我来答
添加附件
收藏
分享
问题补充
3条回答
默认
最新
伟鹏
2024-06-19

可以做一个mysql的审计,大致过程就是专门创建一个数据库,里面创建一张表来存储数据库的访问信息,可以在mysql的my.cnf里面配置init-connect ,当有用户访问数据库的时候就会写入到那个表里面。通过表就可以查看访问信息。

暂无图片 评论
暂无图片 有用 0
打赏 0
暂无图片
Samson
2024-06-18

小版本是啥

暂无图片 评论
暂无图片 有用 0
打赏 0
XY
题主
2024-06-18
8.0.25
XY
题主
2024-06-18
有方法吗
Samson
答主
2024-06-19
select ip,host from performance_schema.host_cache 看下
watson
2024-06-19


MySQL8.0如何查询 异常断开的 客户端 是哪个IP, 哪个数据库用户名

在MySQL 8.0中,可以通过查询performance_schema库中的session表来找出异常断开的客户端信息。以下是一个示例查询,它会返回最近断开的客户端的IP地址和使用的数据库用户名:

SELECT
THREAD_ID,
HOST AS Client_IP,
USER AS Database_User,
TIMESTAMPDIFF(SECOND, END_TIME, CURRENT_TIMESTAMP) AS Time_Since_Disconnect
FROM
performance_schema.threads
WHERE
TYPE = 'CONNECTION'
AND STATE = 'DISCONNECTED'
ORDER BY
END_TIME DESC
LIMIT 1;

这个查询会返回最近断开连接的客户端的线程ID、IP地址、数据库用户名以及从断开连接到现在的时间(秒数)。通过ORDER BY END_TIME DESC可以确保最新的断开会话排在最前面,通过LIMIT 1限制结果只显示最近的一个会话。

请确保开启了performance_schema以及合适的监控设置,因为如果不是最新的断开会话,你可能需要调整查询条件或查看其他相关表来获取所需信息。

暂无图片 评论
暂无图片 有用 0
打赏 0
XY
题主
2024-06-19
这条SQL中的字段在 MySQL8.0 performance_schema.threads 表中根本没有,
回答交流
Markdown


请输入正文
提交
相关推荐
本地查mysql密码怎么查?
回答 1
已采纳
加密的不方便查。5.65.7还是可以selectpassword(‘密码’)对比一下
mysql两阶段提交的问题 如果redo log和binlog都刷完盘了,但是commit的标签没来得急打上,这个事务不算提交成功?
回答 3
要想知道这种情况下到底有没有自动commit,可以另外打开一个客户端连接到数据库中,查询你修改的相关数据,看是否已经变化为更改后的数据,如果没有更改,则说明并没有自动commit.我个人觉得如果你开了
mysql中,有没有想其他库,当无法开库,无法连接到db,直接从底层抽取文件中抽取数据的方法?
回答 1
mysql不能直接提取数据文件的数据,但是可以借助第三方工具来实现,比如可以使用ibd2sql来提取mysql数据库文件中的数据为SQL语句ibd2sql介绍项目地址:https://github.c
2核4g的服务器里搭建了一台mysql,现在cpu占用达到了180%多, 该如何调优?
回答 2
已采纳
如果仅仅是安装了数据库。没有其他的程序。请打开慢日志,设置阈值1秒。看看都有哪些SQL在运行。然后优化或者杀掉这些。
请教一下,mysql库表的类型是innodb,部分表提示innodb free 16384kB ,各位可有解决办法?
回答 1
说明下数据库的版本1、检查下innodbpagesize参数配置2、检查一下innodblargeprefix参数设置
什么是DBMS?DBMS和数据库之间是什么关系?SQL的中英文全称是什么?
回答 4
已采纳
数据库管理系统DBMS(DatabaseManagementSystem):是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,对数据库进行统一管理和控制。用户通过数据库管理系统访问数据库中
You must reset your password using ALTER USER statement before executing this statement.
回答 5
已采纳
alteruseruser()identifiedby'26SE>Z%UddNN'; 
mysql主从下gtid跳过错误的问题?
回答 2
跳过a:4事务SETGTIDNEXT'a:4;BEGIN;COMMIT;SETGTIDNEXT'AUTOMATIC';
之前安装的mysql已经删了 ,为什么这个服务还在?
回答 2
1)、先关掉mysql服务,卸载掉mysql,这里我就用cmd命令了:       关掉:netstopmysql; &
,truncate table时,从库报错Error 'Got error 168 from storage engine' on query.
回答 1
检查下看看是不是磁盘空间不足了