首页 » MySQL日志

MySQL日志

mysqlbinlog

mysqlbinlog用于查看Mysql二进制日志。使用方式如下:

mysqlbinlog [options] log_file

常用选项:

Mysql二进制日志

Mysql在以下几种情况下会生成新的二进制日志:

  1. Mysql重启。
  2. 执行了flush logs操作。
  3. 当前的日志达到max_binlog_size,重新生成binlog。

查看binlog的大小限制:

show variables like '%max_binlog_size%';

日志格式分析

使用mysqlbinlog mysql-bin.000008查看日志的输出:

# at 266457831
#120808  3:15:43 server id 1  end_log_pos 266458067     Query   thread_id=1036202       exec_time=0     error_code=0
SET TIMESTAMP=1344410143/*!*/;
...
/*!*/;
# at 266458067
#120808  3:15:46 server id 1  end_log_pos 266458303     Query   thread_id=1036204       exec_time=0     error_code=0
SET TIMESTAMP=1344410146/*!*/;
...
/*!*/;

#at 266457831 表示这条日志的起始偏移值。

120808 3:15:45 是日志的时间戳,表示2012年8月8日3点15分45秒操作的该条语句。

server id 1 是对应my.cnf中的配置:server-id = 1,表示Mysql服务器的编号。

end_log_pos 266458067 表示本条日志结束位置+1的值(即下一条at xxx的值,亦即下一条日志的起始偏移值)。通过 end_log_pos 和 at 的值可以算出本条日志的大小。

thread_id 即执行本条语句的线程号。

exec_time 表示语句执行时间。

error_code 表示语句执行结果,0表示成功。

分享

0