MySQL中的日志类型(一)摘要和日志的共同特征

  

MySQL中的日志类型

  

MySQL具有多种日志,用来记录mysqld的活动情况,以下为MySQL中的类型及其简要说明。

           日志类型   说明               通用查询日志   记录从客户端获取到的连接和语句         慢速查询日志   记录超过long_query_time时间的查询         错误日志   记录在mysqld服务启动,运行或停止时遇到的问题         二进制日志   记录修改数据的语句         继电器的日志   在复制结构中,从库从主库获取到的数据修改         DDL日志(元数据日志)   DD语句执行的元数据操作            

默认情况下,除了Windows系统上的错误日志,其他日志都是不可用的。

  

下面将按照日志的共同特征,每个日志的特点来讨论这些日志的情况

  

日志的共同特征

  

日志的启用

  

默认情况下,除了Windows系统上的错误日志,其他日志都是不可用的,要开启这些日志,需要在数据库启动时指定相应的选项

           日志类型   开启选项               通用查询日志   ——general_log         慢速查询日志   ——slow_query_log         二进制日志   ——log-bin         错误日志   ——日志错误         继电器的日志   不需要额外开启         DDL日志   不需要额外开启            

通用查询日志和慢速查询日志也可以在数据库运行时进行启用或禁用。可以通过设置全局变量general_log和slow_query_log来控制他们的启用和禁用,例如:

  
  

集全球general_log=甇FF’;
集全球slow_query_log=吧稀?

     

日志文件名称及位置

  

默认情况下,日志都存放在数据库的数据目录下。可以通过相应的选项来修改位置和名称。具体可以参考下表,在下表中, host_name 代表数据库服务器的主机名, nnnnnn 代表一个6位的整数序列。 file_name base_name 是指定的文件名称。可以通过在 file_name base_name 中使用绝对路径来修改日志存放的位置。

           日志类型   默认名称   相应选项               通用查询日志    host_name . log   ——general_log_file= file_name         慢速查询日志    host_name -slow.log   ——slow_query_log_file= file_name         二进制日志    pif-file 本   ——log_bin= base_name         错误日志    host_name .err   ——log_error= file_name         继电器的日志    -relay-bin主机名。 nnnnnn   ——relay-log= file_name         DDL日志   ddl_log.log   无法修改            

通用查询日志和慢速查询日志除了记录在日志文件中以外,也可以记录在日志表中。日志表在mysql库中。名称分别为general_log和slow_log。可以通过——日志输出来指定将这两种日志的存放位置,位置可以是表,文件,或者表和文件。

  

二进制日志日志文件的默认名称是pid文件的值加上本后缀。默认pid文件的值是服务器的主机名。但是不建议使用默认值,当使用默认值时,如果服务器的主机名发生变更,二进制日志日志文件的名称也需要进行相应更改。

  

日志刷新

  

日志刷新会关闭然后重新打开日志文件。对于二进制日志和中继日志,还会创建一个新的日志文件。
日志刷新发生在以下情况下:
1。使用冲洗日志语句
2。使用带有flush-logs或者reflush选项的mysqladmin命令
3。使用带有——flush-logs或者——主数据选项的,mysqldump命令

  

刷新日志语句会关闭并重新打开所有的日志文件,如果需要只刷新某种日志文件,需要指定日志类型,例如:

  
  

刷新缓慢的日志      

日志记录时间

           日志类型   记录时间               generl查询日志   在服务器接收到客户端发来的命令时就写入到日志中。         慢速查询日志   在语句执行完毕,释放锁之后写入到日志中。         二进制日志   在语句执行完毕,释放锁之前写入到日志中。

MySQL中的日志类型(一)摘要和日志的共同特征