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

mysql 日志文件

2013-12-19 18:36 393 查看
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。/article/4468022.htmlMySQL有几个不同的日志文件,可以帮助你找出mysqld内部发生的事情:
1.错误日志:log_error
2.通用查询日志: general_query log
3.二进制日志:log_bin
4.慢查询日志:log_slow_queries
错误日志(The error log)记录启动、运行或停止mysqld时出现的问题。
错误日志文件包含了当[b]mysqld启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息。[/b]
--log-error=[file-name]用来指定错误日志存放的位置。

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

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

下图清楚的记录着mysqld守护进程启动与运行所产生的日志
在日常维护中,错误日志可以帮助我们快速处理故障。



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

通用查询日志(The query log):记录建立的客户端连接和执行的语句。

通用查询日志用来记录用户的所有操作,包括启动和关闭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.




通过编辑/etc/my.cnf来增加通用日志文件记录
log=/www/wdlinux/mysql-5.1.69/var/localhost.log




添加完后通过mysqladmin -u root -p flush-logs命令刷新
查看是否启动通用查询日志




二进制日志 所有更改数据的语句。还用于复制。
二进制日志也叫作变更日志(update log),主要用于记录数据库的变化情况。通过二进制日志可以查询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实用工具检查二进制日志文件。如果你想要重新处理日志止的语句。



注意: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
本文出自 “温柔的风” 博客,请务必保留此出处/article/4468022.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: