[2025.2.1 MySQL学习] 日志

日志

错误日志

  • 记录了当MySQL启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息,当数据库出现任何故障导致无法正常使用时,优先查看该日志
  • 错误日志默认开启,默认目录/var/log/,默认日志文件名为mysqld.log





二进制文件

  • 二进制日志记录了所有的DDL语句和DML语句(增删改),但不包括数据查询(SELECT、SHOW)语句
  • 作用:
    • 灾难时的数据恢复
    • MySQL的主从复制,在MySQL8版本中,默认二进制日志开启
  • 日志格式:MySQL中提供了如下格式来记录二进制日志:
    image
  • 日志查看:由于日志是以二进制方式存储的,不能直接读取,需要通过二进制日志查询工具mysqlbinlog来查看,具体语法:
    image
  • 日志删除:对于比较繁忙的业务系统,每天生成的binlog数据巨大,如果长时间不清除,将会占用大量的磁盘空间,可通过以下方式进行清理:

image

  • 也可以在mysql配置文件中配置二进制文件过期时间,设置了以后,二进制日志会自动删除:show variables like '%binlog_expire_logs_seconds%';





查询日志

  • 查询日志中记录了客户端的所有操作语句,而二进制日志不包括查询数据的SQL语句。默认情况下,查询日志未开启,可以通过以下配置进行设置:show variables like '%general%';查看,而后修改MySQL的配置文件/etc/my.cnf,添加如下内容:
#0关闭 1开启
general_log=1
#日志文件名,默认为host_name.log
general_log_file=mysql_query.log





慢查询日志

  • 慢查询日志记录了所有执行时间超过参数long_query_time设置值并且扫描记录数不小于min_examined_row_limit的所有SQL语句的日志,默认未开启。long_query_time默认为10s,最小为0,精度可以到微秒
  • 设置如下:
slow_query=1
long_query_time=2
  • 默认情况下 ,不会记录管理语句,也不会记录不使用索引进行查找的查询,可以使用如下语句进行行为更改:
log_slow_admin_statements=1
log_queries_not_using_indexes=1
posted @   Luna-Evelyn  阅读(8)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?

阅读目录(Content)

此页目录为空

点击右上角即可分享
微信分享提示