show variables like '%log_error%';
MySQL服务器中提供了多种格式来记录二进制日志,具体格式及特点如下:
日志格式
|
含义
|
STATEMENT
|
基于
SQL
语句的日志记录,记录的是
SQL
语句,对数据进行修改的
SQL
都会记录在日志文件中。
|
ROW
|
基于行的日志记录,记录的是每一行的数据变更。(默认)
|
MIXED
|
混合了
STATEMENT
和
ROW
两种格式,默认采用
STATEMENT
,在某些特殊情况下会自动切换为ROW
进行记录。
|
show variables like '%binlog_format%';
mysqlbinlog [ 参数选项 ] logfilename
参数选项:-d 指定数据库名称,只列出指定的数据库相关操作。-o 忽略掉日志中的前 n 行命令。-v 将行事件 ( 数据变更 ) 重构为 SQL 语句-vv 将行事件 ( 数据变更 ) 重构为 SQL 语句,并输出注释信息
指令
|
含义
|
reset master
|
删除全部
binlog
日志,删除之后,日志编号,将从 binlog.000001
重新开始
|
purge master logs to 'binlog.*'
|
删除
*
编号之前的所有日志
|
purge master logs before 'yyyy-mm-dd hh24:mi:ss'
|
删除日志为
"yyyy-mm-dd hh24:mi:ss"
之前
产生的所有日志
|
如果需要开启查询日志,可以修改MySQL的配置文件 my.cnf 文件,添加如下内容
- #该选项用来开启查询日志 , 可选值 : 0 或者 1 ; 0 代表关闭, 1 代表开启
- general_log=1
- #设置日志的文件名 , 如果没有指定, 默认的文件名为 host_name.log
- general_log_file=mysql_query.log
- #慢查询日志
- slow_query_log=1
- #执行时间参数
- long_query_time=2
- #记录执行较慢的管理语句
- log_slow_admin_statements =1
- #记录执行较慢的未使用索引的语句
- log_queries_not_using_indexes = 1
上述所有的参数配置完成之后,都需要重新启动MySQL服务器才可以生效。