您的位置:首页 > 数据库 > MySQL

MySQL日志文件的开启与参数详解

2017-06-04 22:08 411 查看
MySQL日志文件主要有错误日志、慢查询日志、查询日志、二进制日志。这篇笔记的定位是各种日志文件的开启和参数的解释

1 .错误日志(error log)

用来记录MySQL的启动和关闭以及重要的错误信息。

启动时参数配置文件中配置:
#开启并指定错误日志文件所在目录及其名称 ,默认时为主机名+.err
log_error = /var/log/mysql/lzg-Lenovo-G40-70m.err


2 .慢查询日志( slow query log)

用来记录查询时间超过long_query_time或者没有使用索引的查询语句

启动时参数配置文件中配置:
#启动slow query log
slow_query_log
#设置参数slow_query_log_file
slow_query_log_file=/var/log/mysql/mysql-slow.log
#设置参数log-query-not-using-indexes
log-query-not-using-indexes
#设置参数long_query_time
long_query_time=2


参数解释:

slow_query_log控制slow query log的开关,值为on表示开,off表示关

slow_query_log_file表示slow query log文件所在位置及其文件名

log-query-not-using-indexes表示记录未使用索引的查询语句到slow query log中

long_query_time表示查询时间超过这个阀值的SQL语句记录到slow query log (等于这个阀值的时候不会记录)

log_output指定slow query log的输出格式,FILE(到文件)、TABLE(到表)、NONE(都不到) NONE优先级最高,FILE和TABLE优先级一样

3 .查询日志(general log)

用来记录所有对MySQL数据库的请求信息,无论是否得到正确的执行。

启动时参数配置文件中配置:
#开启查询日志
general_log
#设置查询日志文件的目录和名称,默认时为主机名+.log
general_log_file=/var/log/mysql/lzg-Lenovo-G40-70m.log


4 .二进制日志(binary log)

记录对MySQL数据库执行更改的所有操作。

启动时参数配置文件中配置:
#开启二进制日志并指定bin log 的所在目录及其名称
log_bin = /var/log/mysql/lzg-Lenovo-G40-70m-bin
#server_id是mysql 5.7之后开启bin log必须要指定的,大概是因为bin log是服务器级别的日志
server_id =1
#设置参数binlog_format
binlog_format=statement
#设置参数max_binlog_size
max_binlog_size= 100M
#设置参数sync_binlog
sync_binlog=1


参数解释:

binlog_format表示二进制日志的格式,有三种

1. statement 表示bin log记录的是逻辑SQL语句

2. row 表示bin log记录的是表中行的更改情况

3. mixed 是statement和row的混合,一般情况下使用statement,当可能存在主从不一致的情况下使用row

max_binlog_size 指定单个bin log文件的最大值

sync_binlog表示每写缓冲多少次就同步到磁盘,设置为1时表示采用同步写磁盘的方式来写bin log

binlog-do-db 需要写入这些指定库的日志

binlog-ignore-db 不需要写入这些指定库的日志

expire_logs_days 设置日志的过期天数,过来这个值的天数的bin log就会被自动删除

由于binlog是二进制的,而前面的查询日志、慢查询日志、错误日志都是文本的,所以,前面的日志可以直接查看,binlog日志必须要使用mysqlbinlog工具来查看

一些日志相关的mysql命令:

flush logs #是来刷新数据库日志的。
show binary logs  #显示binlog文件
show master logs  #同上
show binlog events in 主机名-bin.*******   #查看binlog中的内容
reset master #删除binlog日志文件,并新建一个000001的binlog
purge master logs to 主机名-bin.****** #删除******编号之前的所有日志
purge master logs before 'yyyy-mm-dd hh24:mi:ss'#删除日记为"yyyy-mm-dd hh24:mi:ss"之前所产生的日志
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql