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

来源:互联网 发布:伏安特性曲线实验数据 编辑:程序博客网 时间:2024/05/21 22:23

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"之前所产生的日志
原创粉丝点击