天天看点

mysql 日志文件

           原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://linchao52.blog.51cto.com/3509589/1340858

mysql有几个不同的日志文件,可以帮助你找出mysqld内部发生的事情:

1.错误日志:log_error

2.通用查询日志: general_query log

3.二进制日志:log_bin

4.慢查询日志:log_slow_queries

错误日志(the error log):记录启动、运行或停止mysqld时出现的问题。

错误日志文件包含了当mysqld启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。

   --log-error=[file-name]用来指定错误日志存放的位置。

  如果没有指定[file-name],默认hostname.err(本文文件名为localhost.localdomain.err)做为文件名,默认存放在目录中。

  也可以将log-error配置到my.cnf文件中,这样就省去了每次在启动mysqld时都手工指定--log-error.

下图清楚的记录着mysqld守护进程启动与运行所产生的日志

在日常维护中,错误日志可以帮助我们快速处理故障。

mysql 日志文件

由于采用的是wdlinux一键安装包搭建lnmp环境,所以日志路径会与yum安装不同。

通用查询日志用来记录用户的所有操作,包括启动和关闭mysql服务、更新语句、查询语句等。

如果你想要知道mysqld内部发生了什么,你应该用--log[=file_name]或-l [file_name]选项启动它。如果没有给定file_name的值, 默认名是host_name.log。所有连接和语句被记录到日志文件。当你怀疑在客户端发生了错误并想确切地知道该客户端发送给mysqld的语句时,该日志可能非常有用。

mysqld按照它接收的顺序记录语句到查询日志。这可能与执行的顺序不同。这与更新日志和二进制日志不同,它们在查询执行后,但是任何一个锁释放之前记录日志。(查询日志还包含所有语句,而二进制日志不包含只查询数据的语句)。

可通过>show variables like'&general_log';命令查找通用查询日志完整路径。

默认情况下,general query log是禁用的。 存放在data directory 目录下,默认文件名是host_name.log.

mysql 日志文件

通过编辑/etc/my.cnf来增加通用日志文件记录

log=/www/wdlinux/mysql-5.1.69/var/localhost.log

mysql 日志文件

添加完后通过mysqladmin -u root -p flush-logs命令刷新

查看是否启动通用查询日志

mysql 日志文件

二进制日志       所有更改数据的语句。还用于复制。

二进制日志也叫作变更日志(update log),主要用于记录数据库的变化情况。通过二进制日志可以查询mysql数据库中进行了哪些改变。

mysql 日志文件

mysql默认是没有开启bin-log日志,首先我们需要开启bin-log日志,

在my.cnf中修改

[mysqld]

log-bin=/www/wdlinux/mysql-5.1.69/var/mysql-bin.log

指定了bin-log日志的路径,开启日志后需要mysqladmin -u root -p flush-logs才生效,重启后我们发现在刚才设定的路径新增了log文件,这就是我们需要的二进制日志

你可以用mysqlbinlog实用工具检查二进制日志文件。如果你想要重新处理日志止的语句。

mysql 日志文件

注意:1.启用binary log会对性能带来一定影响。

2.binary log 不记录没有修改data 的操作,如select 或show。

慢日志        记录所有执行时间超过long_query_time秒的所有查询或不使用索引的查询。

慢查询日志用来记录执行时间超过指定时间的查询语句。通过慢查询日志,可以查找出哪些查询语句的执行效率很低,以便进行优化。

默认情况下,slow query log 是禁用的

在没有指定slow query log file 名称的情况下, 默认文件名是:host_name-slow.log.默认的存放在data directory目录下。

在runtime 状态也可以通过slow_query_log和 slow_query_log_file 来修改。

slow query log 应该受保护,因为里面可能包含密码。

语句执行完并且所有锁释放后记入慢查询日志。记录顺序可以与执行顺序不相同。

慢查询日志可以用来找到执行时间长的查询,可以用于优化。但是,检查又长又慢的查询日志会很困难。

通过slow query log 可以来对相关的sql 进行优化,但是直接查看log 比较困难,可以使用mysqldumpslow 命令对log 进行dump 之后在查看。

参考:mysql官方中文手册  http://dev.mysql.com/doc/refman/5.1/zh/database-administration.html#log-files

      dave大哥博客: http://blog.csdn.net/tianlesoftware/article/details/7028304

本文出自 “温柔的风” 博客,请务必保留此出处http://linchao52.blog.51cto.com/3509589/1340858