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查看操作记录内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论