MySQL查看操作记录几种常用的方法

 更新时间:2025年09月24日 09:45:55   作者:iqjkq42958  
在数据库的日常管理中,了解表的操作历史是非常重要的,MySQL提供了多种方式来查看表的操作日志,包括查询日志、慢查询日志以及二进制日志等,这篇文章主要介绍了MySQL查看操作记录几种常用的方法,需要的朋友可以参考下

MySQL 提供了多种方式来查看数据库操作记录,以下是几种常用的方法:

1. 通用查询日志 (General Query Log)

通用查询日志记录了所有MySQL服务器接收到的SQL语句,包括连接和断开连接的信息。

启用方法

-- 查看当前状态
SHOW VARIABLES LIKE 'general_log%';

-- 启用通用查询日志
SET GLOBAL general_log = 'ON';

-- 设置日志文件路径(可选)
SET GLOBAL general_log_file = '/var/log/mysql/mysql-general.log';

查看日志

cat /var/log/mysql/mysql-general.log

注意:生产环境不建议长期开启,会影响性能。

2. 二进制日志 (Binary Log)

二进制日志记录所有更改数据的SQL语句(DDL和DML),用于复制和恢复。

查看方法

-- 查看是否启用
SHOW VARIABLES LIKE 'log_bin';

-- 查看所有二进制日志文件
SHOW BINARY LOGS;

-- 查看特定二进制日志内容
SHOW BINLOG EVENTS IN 'mysql-bin.000001';

使用mysqlbinlog工具

mysqlbinlog /var/lib/mysql/mysql-bin.000001

3. 慢查询日志 (Slow Query Log)

记录执行时间超过指定阈值的SQL语句。

启用方法

-- 查看当前状态
SHOW VARIABLES LIKE 'slow_query%';

-- 启用慢查询日志
SET GLOBAL slow_query_log = 'ON';

-- 设置慢查询阈值(秒)
SET GLOBAL long_query_time = 2;

-- 设置日志文件路径
SET GLOBAL slow_query_log_file = '/var/log/mysql/mysql-slow.log';

4. 审计日志 (Enterprise Audit Log)

MySQL企业版提供审计功能,社区版可以通过插件实现:

安装审计插件

INSTALL PLUGIN audit_log SONAME 'audit_log.so';

5. 查看历史命令

对于当前会话执行的命令:

-- 查看当前会话<a href="http://www.jianchenglaw.com/" rel="external nofollow"   target="_blank">执行</a>过的SQL
SELECT * FROM performance_schema.events_statements_history
WHERE thread_id = PS_CURRENT_THREAD_ID();

6. 使用information_schema和performance_schema

-- 查看最近执行的语句
SELECT * FROM performance_schema.events_statements_history_long
ORDER BY EVENT_ID DESC LIMIT 10;

-- 查看连接历史
SELECT * FROM performance_schema.events_waits_history_long
WHERE EVENT_NAME LIKE 'wait/io/socket%';

7. 查看MySQL历史文件(客户端)

MySQL客户端会记录执行过的命令:

cat ~/.mysql_history

注意事项

  • 日志记录会影响性能,生产环境应谨慎使用

  • 日志文件会占用磁盘空间,需要定期清理

  • 敏感操作日志应妥善保管

  • MySQL 8.0在性能监控方面有显著增强

日志文件位置

  • Linux系统通常位于:/var/log/mysql/

  • Windows系统通常位于MySQL安装目录的data文件夹中

根据您的具体需求选择合适的日志记录方式,对于安全审计建议使用审计插件,对于性能优化建议使用慢查询日志。

总结

到此这篇关于MySQL查看操作记录几种常用的方法的文章就介绍到这了,更多相关MySQL查看操作记录内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 获取MySQL的表中每个userid最后一条记录的方法

    获取MySQL的表中每个userid最后一条记录的方法

    这篇文章主要介绍了获取MySQL的表中每个userid最后一条记录的方法,并且针对userid不唯一的情况,需要的朋友可以参考下
    2015-05-05
  • MySQL 5.7.22 二进制包安装及免安装版Windows配置方法

    MySQL 5.7.22 二进制包安装及免安装版Windows配置方法

    这篇文章通过实例代码给大家介绍了MySQL 5.7.22 二进制包安装教程,文章末尾给大家补充介绍了mysql 5.7.22 免安装版Windows配置方法,感兴趣的朋友跟随脚本之家小编一起看看吧
    2018-08-08
  • Linux下如何实现Mysql定时任务

    Linux下如何实现Mysql定时任务

    这篇文章主要介绍了Linux下如何实现Mysql定时任务,需要的朋友可以参考下
    2018-04-04
  • MySQL 各个索引的使用详解

    MySQL 各个索引的使用详解

    这篇文章主要介绍了MySQL 各个索引的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • SQL Server携程核心系统无感迁移到MySQL实战

    SQL Server携程核心系统无感迁移到MySQL实战

    这篇文章主要介绍了SQL Server携程核心系统无感迁移到MySQL实战,文章通过基于数据库部署架构镜像构建了订单缓存统一管理热点数据,解决各端差异,具体详情需要的小伙伴可以参考下面文章详细内容
    2022-05-05
  • 一文掌握MySQL锁表方法

    一文掌握MySQL锁表方法

    在MySQL中,可以使用多种方法来锁定表,这些方法取决于你的具体需求,比如是锁定整个表还是行级锁,本文给大家分享一些常用的MySQL锁表方法,感兴趣的朋友跟随小编一起看看吧
    2024-02-02
  • php连接MySQL的两种方式对比

    php连接MySQL的两种方式对比

    这篇文章主要介绍了php连接MySQL的两种方式对比,一种是原生的链接方式另外一种是PDO方式,附上示例,推荐给大家,有需要的小伙伴可以参考下
    2015-04-04
  • MySQL 线上数据库清理数据的方法

    MySQL 线上数据库清理数据的方法

    这篇文章主要介绍了MySQL 线上数据库清理数据的方法,帮助大家更好的理解和学习使用MySQL,感兴趣的朋友可以了解下
    2021-03-03
  • MySQL优化常用的19种有效方法(推荐!)

    MySQL优化常用的19种有效方法(推荐!)

    关于数据库优化,网上有不少资料和方法,但是不少质量参差不齐,有些总结的不够到位,内容冗杂,下面这篇文章主要给大家介绍了关于MySQL优化常用的19种有效方法,需要的朋友可以参考下
    2022-03-03
  • 解决MySql客户端秒退问题(找不到my.ini)

    解决MySql客户端秒退问题(找不到my.ini)

    这篇文章主要介绍了解决MySql客户端秒退问题(找不到my.ini),本文给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02

最新评论