MySQL执行SQL日志查询

在MySQL数据库中,执行SQL语句是常见的操作。有时候,我们需要查询已经执行过的SQL语句,以便进行性能优化、故障排查等工作。MySQL提供了一种日志机制,可以记录执行过的SQL语句,这就是MySQL执行SQL日志查询。

本文将介绍如何开启和配置MySQL执行SQL日志,并提供了一些常用的查询语句示例。

开启并配置执行SQL日志

MySQL提供了两个参数控制执行SQL日志:general_loggeneral_log_file

  • general_log参数用于控制是否开启执行SQL日志,默认为关闭状态。可以通过以下命令开启执行SQL日志:
SET GLOBAL general_log = 'ON';
  • general_log_file参数用于指定执行SQL日志的输出文件路径,默认为空。可以通过以下命令设置执行SQL日志的输出文件路径:
SET GLOBAL general_log_file = '/var/log/mysql/mysql.log';

注意:在设置执行SQL日志输出路径时,需要确保MySQL用户对该文件有写入权限。

查询执行SQL日志

开启执行SQL日志后,MySQL会将执行的SQL语句记录到指定的日志文件中。我们可以使用SELECT语句查询执行SQL日志。

以下是一些常用的执行SQL日志查询语句及其说明:

  • 查询所有的执行SQL日志:
SELECT * FROM mysql.general_log;
  • 查询最近100条执行SQL日志:
SELECT * FROM mysql.general_log ORDER BY event_time DESC LIMIT 100;
  • 查询指定时间范围内的执行SQL日志:
SELECT * FROM mysql.general_log WHERE event_time >= '2022-01-01 00:00:00' AND event_time <= '2022-01-31 23:59:59';

示例代码

以下是一个示例代码,演示如何开启执行SQL日志,并查询最近的执行SQL日志:

-- 开启执行SQL日志
SET GLOBAL general_log = 'ON';

-- 设置执行SQL日志输出文件路径
SET GLOBAL general_log_file = '/var/log/mysql/mysql.log';

-- 查询最近100条执行SQL日志
SELECT * FROM mysql.general_log ORDER BY event_time DESC LIMIT 100;

总结

MySQL执行SQL日志查询是优化和故障排查工作中的常见操作。通过开启和配置执行SQL日志,我们可以记录执行过的SQL语句,并通过查询语句获取相关信息。本文介绍了如何开启和配置执行SQL日志,并提供了一些常用的查询语句示例。

希望本文能帮助你更好地理解和使用MySQL执行SQL日志查询功能。如果你有任何问题或建议,请随时留言。