错误日志

错误日志记录了MySQL启动和停止时,服务器运行过程发生的错误相关信息;该日志默认开启。

查看日志位置,一般位于/var/log

1
show variables like '%log_error%'

二进制日志

BINLOG,记录了所有DDL和DML

作用:

  • 灾难时的数据恢复
  • MySQL的主从复制

MySQL8中二级制日志默认开启

查看日志位置:

1
show variables like '%log_bin%'

日志格式:

  • STATEMENT
    • 基于SQL语句的记录
  • ROW
    • 基于行的日志记录,记录每行的数据变更
  • MIXED
    • 混合STATEMENT和ROW

查看格式:

1
show variables like '%binlog_format%';

可在MySQL配置文件使用binlog_format=xxx指定日志格式

查看binlog需要使用mysqlbinlog来查看,具体语法:

1
mysqlbinlog [-arguments] logfile

清理日志:

  • restart master 删除所有binlog
  • purge master logs to 'binlog.****' 删除***编号之前的所有日志
  • purge master logs before 'yyyy-mm-dd hh:mi:ss'删除指定时间之前产生的日志

查询日志

记录客户端所有的操作语句

查看日志参数:

1
show variables like '%general%'

在MySQL配置文件指定general_log=1开启查询日志,general_log_file=xxx指定日志路径

慢查询日志

记录了所有执行时间超过参数long_query_time并扫描记录不小于min_examined_row_limit的所有SQL语句日志

在MySQL配置文件指定slow_query_log=1开启日志,long_query_time=xxx指定执行时间

默认不会记录管理语句,也不会记录不使用所有进行查找的查询,在MySQL配置文件指定log_slow_admin_statements开启日志,log_queries_not_using_indexes指定执行时间

查看日志位置:

1
SHOW VARIABLES LIKE  '%slow_query_log%';