MySQL日志
有多少种日志
错误日志:记录出错信息,也记录一些警告信息或者正确的信息
慢查询日志:设置一个阈值,将运行时间超过该值的所有SQL语句都记录到慢查询的日志文件中
二进制日志:记录对数据库执行更改的所有操作
查询日志:记录所有对数据库请求的信息,不论这些请求是否得到了正确的执行
中继日志:
错误日志
在默认情况下,系统记录错误日志的功能是关闭的,错误信息被输出到标准错误输出。需要在启动的时候开启 log-error选项
如果没有指定文件名 默认hostname.err,默认路径为datadir目录
指定日志路径两种方法
编辑my.cnf 写入 log-error=[path]
通过命令参数错误日志 mysqld_safe --user=mysql --log-error=[path] &
慢查询日志
默认情况下,慢查询日志是被关闭的
---指定初始化参数,开启慢查询
slow_query_log = 1 0是关闭慢查询,1是打开
slow_query_log_file = /var/lib/mysql/log-slow-query.log ---指定慢查询日志的名称,如果你没有指定慢查询日志的名称,默认会在数据文件目录下创建 host_name-slow.log慢查询日志
long_query_time 的值被设置为0-10之间,默认值是10.
查询日志
也正因为mysql服务器需要不断地记录日志,开启General log会产生不小的系统开销。 因此,Mysql默认是把General log关闭的。格式为 {Time ,Id ,Command,Argument }, general query log写入日志是在客户端执行命令,并且释放锁之前,写入日志
设置general log的日志文件路径:set global general_log_file='/tmp/general.log';
开启general log: set global general_log=on; ---不需要服务器的重启
关闭general log: set global general_log=off;
二进制日志
默认也是关闭的,打开二进制日志会消耗一些系统性能,但是对于复制和系统恢复,所带来的好处大于减少的性能, 二进制日志即binlog日志 记录数据定义语言(DDL)和数据控制语言(DML) 但不包括数据查询语言。
二进制日志的功能
1、恢复(recovery)
2、复制(replication)
log-bin = /var/log/mysql/mysql-bin.log --指定二进制日志的名称
log_bin_index = /var/log/mysql/mysql-bin.log.index --二进制日志索引的名称
relay_log = /var/log/mysql/mysql-bin.relay ---中继日志的名称
relay_log_index = /var/log/mysql/mysql-bin.relay.index ---中级日志索引的名称
binlog-do-db=db_name 明确告诉mysql,需要对某个数据库记录binlog,如果有了binlog-do-db=db_name 显示指定,mysql会忽略正对其他书库执行query,而仅仅记录正对指定数据库执行的query
binlog-ignore-db=db_name :显示的指定忽略某个数据库的binlog记录。
中继日志
中继日志也是二进制日志,用来给slave 库恢复
总结
1. 减少IO资源对于数据库来说比较重要,所以,默认情况下应该只开启错误日志。
2. 如果需要实现备份和复制,应至少打开二进制日志
3. 为了性能优化,找到慢查询,可以打开慢查询日志
4. 查询日志一般不打开,IO负担比较大
5. 要关注一下存储引擎自己的日志
参考:
http://www.cnblogs.com/zengkefu/p/5716190.html
http://blog.csdn.net/wll_1017/article/details/44979539