- 1.普通log
记录所有sql操作,包括select,show语句。
设置
默认是不打开此log。
打开时可以指定目录,不指定时保存在数据库录目录下。
[mysqld]
log = /data/logs/mysql.log #此方式为指定文件
log = 1 #此文件默认保存在数据库目录下
log-output = TABLE,FILE #加上此参数可以同时把日志存储到数据表中,mysql库下。一般为CVS格式 ,当然可选其中一个参数就行
#默认是FILE值
- 2.错误日志
设置
[mysqld_safe] #此节点设置了会优先读此节点,[mysqld]着节点会无效,不知道为啥?
log-error=/data/logs/mysqld-err.log #同样可以指定目录,不指定默认存储在数据库目录下 xxx.err
- 3.慢查日志
设置
[mysqld]
log_slow_queries = /data/logs/mysql-slow.log #不指定默认为 msyql-slow.log
long_query_time = 1 #此值默认为10,最小为1,5.1有个google的补丁可以准确的毫秒。
log_queries_not_using_indexes = 1 #没使用索引的查询,存储过程会认为没使用索引而记录下来,默认是0。
- 4.二进制日志
特别说明: 二进制日志 并不记录select,show等不改变数据的sql语句,它主要功能是用于:数据恢复与数据复制。其带来的性能消耗远不如普通 日志高。默认是不打开的。如果使用事务型数据引擎InnoDB会有自己的二进制日志。特别是服务器使用主从架构时,必需开二进制日志,在机群情况下。
设置
[mysql]
log-bin = mysql-binlog #生成格式为 mysql-binlog.00000X 形式。这里不要写完整目录,写个名字就行,日志会存储在数据库目录下。
使用 show variables like '%log%'; 命令可以查看当前日志相关设置。
mysql> show variables like 'log%';
+---------------------------------+-------------------------------------+
| Variable_name | Value |
+---------------------------------+-------------------------------------+
| log | OFF |
| log_bin | ON |
| log_bin_trust_function_creators | OFF |
| log_error | /data/logs/mysql_log/mysqld-err.log |
| log_queries_not_using_indexes | OFF |
| log_slave_updates | OFF |
| log_slow_queries | ON |
| log_warnings | 1 |
+---------------------------------+-------------------------------------+
8 rows in set (0.00 sec)