一、错误日志
- 错误日志是MySQL中最重要的日志之一,它记录了MySQL启动、停止和运行过程中发生的任何严重错误的相关信息
- 当MySQL服务出现任何故障导致无法正常使用时,建议首先查看此日志
- 错误日志默认是开启的,默认存放目录:/var/log/,默认文件名:mysqld.log
- 查看错误日志存储位置
二、二进制日志
- 二进制日志记录了所有的DDL和DML语句,但是不会记录查询(select、show)语句
- 在MySQL 8版本中,二进制日志默认是开启的
- 作用
① 灾难时的数据恢复,一旦数据库崩了,可以通过二进制日志进行数据恢复(因为在二进制日志中记录了数据库表和数据变更,只需要把二进制日志中语句再次执行,就可以恢复数据)
② MySQL的主从复制
1. 存储位置
2. 日志格式
3. 查看日志
- 日志是二进制方式存储的,无法直接读取,需要通过二进制日志查询根据mysqlbinlog来查看
- 基于ROW的二进制日志
- 基于STATEMENT的二进制日志
① 修改MySQL配置文件,将日志格式替换为STATEMENT,重启MySQL服务
② 查看日志,此时不需要加-v
4. 删除日志
- 对于比较繁忙的业务系统,每天生成的二进制日志数据巨大,如果长时间不清除,将会占用大量磁盘空间
- 举例说明
- 也可以在MySQL的配置文件中设置二进制日志的过期时间,这样等到二进制日志过期会自动删除
三、查询日志
- 查询日志中记录了MySQL所有的操作语句,而二进制日志不包含查询数据的SQL语句
- 默认情况下,查询日志是未开启的
- 修改MySQL配置文件,开启查询日志,重启MySQL服务
- 查看查询日志
四、慢查询日志
- 慢查询日志记录了所有执行时间超过参数long_query_time设置值,且扫描记录数不小于min_examined_row_limit的所有SQL语句的日志(long_query_time默认为10秒,最小为0秒,精度可以到微秒)
- 默认未开启慢查询日志
- 修改MySQL配置文件,开启慢查询日志,重启MySQL服务
- 查看慢查询日志
- 修改配置文件,开启管理语句和未使用索引语句执行比较慢的日志