MySQL日志类型:
查询日志、慢查询日志、错误日志、二进制日志、事务日志、中继日志
1.查询日志
/*相关配置变量*/ general_log=ON|OFF general_log_file=HOSTNAME.log log_output=TABLE/FILE/NONE
2.慢查询日志
是指执行时长超出指定时长的查询操作(生产环境中建议开启)
查看当前查询时长的服务器变量:long_query_time
/*相关配置变量*/ slow_query_log=ON|OFF slow_query_log_file=HOSTNAME-slow.log log_slow_filter //慢查询日志过滤器 log_slow_queries=ON|OFF //(同第一项,不是重点) log_slow_rate_limit=1 log_slow_verbosity
3.错误日志
会记录mysqld启动和关闭过程中输出的事件信息;
mysqld运行中产生的错误信息;
event scheduler运行一个event时产生的日志信息;
在主从复制架构中从服务器上启动从服务器线程时产生的信息;
/*相关配置变量*/ log_error=/PATH/TO/SOME_LOG_FILE log_warning=1|0 //是否记录警告信息至错误日志文件中
4.二进制日志
记录导致数据改变或潜在导致数据改变的SQL语句。
记录格式:
基于‘语句’记录:statement;
基于‘行’记录:row;
混合模式:mixed,让系统自行判断应该使用哪种方式;
二进制日志文件:
"重放"日志文件中的事件来生成数据副本;
文件构成:
日志文件:mysql-bin.文件名后缀 (二进制格式)
索引文件:mysql-bin.index (文本格式)
查看二进制文件的工具:
# mysqlbinlog [OPTIONS] LOG_FILE
--start-position=#/--stop-position=#
--start-datetime=YYYY-MM-DD hh:mm:ss/--stop-datetime=YYYY-MM-DD hh:mm:ss
查看mariadb自行管理使用中的二进制日志文件列表:
# SHOW {BINARY|MASTER} LOGS;
# SHOW MASTER STATUS;
查看二进制文件中事件的详细信息:
# SHOW BINLOG EVENTS IN 'BINLOG_NAME';
/*相关配置变量*/ log_bin=ON|OFF //是否开启二进制日志记录,与下面一项要都ON sql_log_bin=ON|OFF //是否记录二进制日志 注意:开启二进制日志记录必须在配置文件中才能开启,在my.cnf中[mysqld]中写入
log-bin
log_bin=mysql-bin
才能使log_bin变量显示为ON,直接在mysql中修改其变量值是无法实现的。
binlog_format=STATEMENT|ROW|MIXED //日志记录格式 max_binlog_size=1073741824 //默认为1G,单位是字节,达到最大值时,会自动滚动;未必一定到达指定值才会滚动; sync_binlog=0|1 //是否开启同步(开启会影响性能,不开会影响数据)
/*二进制日志文件事件内容的格式*/ /* 事件发生的日期和时间:151105 16:34:59 事件发生的服务器标识:server id 1 事件的结束位置:end_log_pos 431 事件的类型:query 事件发生时所在服务器执行此事件的线程ID:thread_id=1 语句的时间戳与将其写入二进制文件中的时间差:exec_time=0 错误代码:error_code=0 事件内容:。。。。 (GTID:Global Transaction ID)在mysql5.6+和mariadb1.10+才有的专属属性 */
5.中继日志
复制架构中,从服务器用于保存从主服务器二进制日志中读取到的事件
6.事务日志
事务型存储引擎自行管理和使用,不应该太大,根据实际情况计算出来的。例如:ib_logfile0