上一篇
某天早上,你发现公司订单数据库里几条关键数据被莫名其妙修改了,老板在群里@你:"昨晚谁改的?改了什么?" 你后背一凉——没开审计日志,怎么查?
别慌!MySQL自带的操作日志(General Log、Binary Log、Slow Query Log)就是你的"监控摄像头",今天手把手教你如何开启、查看和分析这些日志,附可直接复用的代码,5分钟搞定问题追踪!
日志类型 | 典型应用场景 | |
---|---|---|
General Log | 所有执行的SQL语句(包括连接信息) | 调试、全量操作审计 |
Binary Log | 数据变更的二进制记录(增删改) | 主从复制、数据恢复 |
Slow Log | 执行超过阈值的SQL | 性能优化、排查慢查询 |
📌 注意:General Log会显著影响性能,仅在排查问题时临时开启!
步骤1:检查当前状态
SHOW VARIABLES LIKE 'general_log%'; -- 输出示例: -- general_log OFF -- general_log_file /var/lib/mysql/server.log
步骤2:临时开启日志(重启失效)
SET GLOBAL general_log = 'ON'; -- 开启 SET GLOBAL general_log_file = '/tmp/mysql_all_queries.log'; -- 自定义路径
步骤3:永久生效(修改my.cnf)
[mysqld] general_log = 1 general_log_file = /var/log/mysql/general.log
查看日志内容(Linux终端)
tail -f /var/log/mysql/general.log
步骤1:确认Binary Log状态
SHOW VARIABLES LIKE 'log_bin%'; -- 输出示例: -- log_bin ON
步骤2:列出所有Binary Log文件
SHOW BINARY LOGS; -- 示例结果: -- mysql-bin.000001 | 107 -- mysql-bin.000002 | 536
步骤3:解码日志内容(关键!)
# 转换为可读文本(时间范围过滤) mysqlbinlog --start-datetime="2025-08-01 00:00:00" --stop-datetime="2025-08-02 12:00:00" /var/lib/mysql/mysql-bin.000002 > binlog_analysis.txt # 只看某个表的操作 mysqlbinlog --database=your_db_name mysql-bin.000002 | grep -A 10 "UPDATE orders"
实用技巧:回滚误操作
# 生成回滚SQL(比如误删后恢复) mysqlbinlog --start-position=1234 --stop-position=5678 mysql-bin.000002 | mysql -u root -p
步骤1:设置慢查询阈值(单位:秒)
SET GLOBAL long_query_time = 1; -- 超过1秒的SQL SET GLOBAL slow_query_log = 'ON';
步骤2:查看日志路径
SHOW VARIABLES LIKE 'slow_query_log%';
步骤3:用mysqldumpslow工具分析
# 统计最耗时的3条SQL mysqldumpslow -s t -t 3 /var/log/mysql/mysql-slow.log # 输出示例: # Count: 5 Time=3.2s (16s) Lock=0.00s (0s) Rows=100.0 (500) # SELECT * FROM large_table WHERE user_id=N
日志爆炸式增长
SET GLOBAL expire_logs_days = 7; -- 自动保留7天
PURGE BINARY LOGS BEFORE '2025-08-01 00:00:00';
敏感信息泄露
600
: chmod 600 /var/log/mysql/general.log
磁盘空间不足
df -h
监控日志分区,推荐单独挂载/var/log/mysql
。 下次再有人问"谁改了数据?",你只需淡定敲两行命令,深藏功与名 😎
(注:本文基于MySQL 8.0+版本,2025-08验证通过)
本文由 光婕 于2025-08-09发表在【云服务器提供商】,文中图片由(光婕)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://up.7tqx.com/wenda/578564.html
发表评论