mysql查看执行sql语句的记录日志

1、使用processlist,但是有个弊端,就是只能查看正在执行的sql语句,对应历史记录,查看不到。好处是不用设置,不会保存。

– use information_schema;

– show processlist;

或者:

– select * from information_schema.PROCESSLIST where info is not null;

2、开启日志模式

– 1、设置

– SET GLOBAL log_output = ‘TABLE’;SET GLOBAL general_log = ‘ON’; //日志开启

– SET GLOBAL log_output = ‘TABLE’; SET GLOBAL general_log = ‘OFF’; //日志关闭

– 2、查询

SELECT * from mysql.general_log ORDER BY event_time DESC;

– 3、清空表(delete对于这个表,不允许使用,只能用truncate)

– truncate table mysql.general_log;

在查询sql语句之后,在对应的  C:Program FilesMySQLMySQL Server 5.7data 文件夹下面有对应的log记录

ps:在查询到所需要的记录之后,应尽快关闭日志模式,占用磁盘空间比较大

MySQL 中,有多种使用 SQL 语句查看历史记录的方法: #### 查看正在执行SQL 可以通过切换到 `information_schema` 数据库,然后使用 `show processlist` 语句查看正在执行SQL 语句,也可以直接使用 SQL 语句查询 `information_schema.PROCESSLIST` 表,筛选出 `info` 不为空的记录: ```sql -- 切换数据库 use information_schema; -- 查看正在执行SQL 语句 show processlist; -- 或者直接使用 SQL 语句查询 select * from information_schema.`PROCESSLIST` where info is not null; ``` 这种方式能实时查看当前正在执行SQL 情况 [^1]。 #### 查看 SQL 执行历史 通过查看通用日志来获取 SQL 执行历史。首先要确保日志处于开启状态且以 `table` 形式输出,然后从 `mysql.general_log` 表中查询历史记录: ```sql -- 查看日志开启状态,若返回结果为 off,则为关闭,on 为开启 show variables like '%general_log%'; -- 查看输出方式,若返回结果不为 table 则设置 table 输出 show variables like '%log_output%'; -- 设置 table 输出,开启日志记录 set GLOBAL log_output = 'table'; set GLOBAL general_log = on; -- 查看 sql 执行历史 SELECT * from mysql.general_log ORDER BY event_time DESC; ``` 若要清空日志,可以使用 `truncate table mysql.general_log` 语句;若要关闭日志,可以使用 `SET GLOBAL log_output = 'TABLE'; SET GLOBAL general_log = 'OFF';` [^2]。 #### 通过二进制日志查看 二进制日志记录了所有更改数据库SQL 语句,虽然不能直接用简单 SQL 查看,但可以借助 `mysqlbinlog` 工具将其内容输出到标准输出,若要通过 SQL 结合存储过程等将其内容导入表再查询也是一种思路(但较复杂)。不过需要先确保 MySQL 的二进制日志功能已开启,在 `my.cnf` 或 `my.ini` 配置文件中添加或修改相关配置: ```ini [mysqld] log-bin=mysql-bin binlog-format=ROW ``` 重启 MySQL 服务使配置生效。 ```bash # 查看二进制日志内容 mysqlbinlog /var/lib/mysql/mysql-bin.000001 ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值