MySQL日志专题

时间:2023-08-08 13:36:38
MySQL日志专题

查询所有的日志开启、关闭、输出位置等状态的SQL

 mysql> SHOW GLOBAL VARIABLES LIKE '%log%';

1.查询日志:记录查询操作;

  保存方式:文件(file)或 表(table)

  general_log=ON|OFF

  general_log_file=$HOSTNAME.log

  log_output=TABLE|FILE|NONE

2.慢查询日志: 执行时长超出指定时长的查询操作;

   mysql> show global variables like 'long_query_time';  (查看当前SQL语句时长,默认10秒)

   mysql> set global long_query_time=“时长”

slow_query_log=ON|OFF  (关于是否开启慢查询日志)

3.错误日志:(注意,不全是错误的信息)

  mysqld 启动和关闭过程中输出的事件信息;

  mysqld运行中产生的错误信息;

  event scheduler运行一个enent时产生的日志信息;

  在主从复制架构中的从服务器上启动从服务器线程时产生的信息;

  log_error=/PATH/TO/LOG_ERROR_FILE

  log_warnings=1|0:是否记录警告信息至错误日志中

4.二进制日志:记录导致数据改变或潜在导致数据改变的SQL语句

mysql> show binary logs;  (记录所有当前的二进制日志文件列表)

mysql>show master status; (当前正在使用哪个二进制日志,以及下一个操作从哪个Position开始)

mysql> show binlog events in 'mysql-bin.000003';  (可以看到操作过的SQL语句)

日志文件名  起始位置  时间类型  唯一标识  结束位置  事件本身是什么

  服务器变量:

    sql_log_bin=ON|OFF  定义是否记录二进制日志;

    log_bin=/PATH/TO/BIN_LOG_FILE 记录的文件位置,通常为OFF;

    binlog_format=STATEMENT|ROW|MIXED   二进制日志记录的格式

    max_binlog_size=1073741824  单个二进制日志文件的最大体积(默认为1G);到达最大值以后会自动滚动;文件达到上限的大小未必一定到精确值