转载来自:http://www.cnblogs.com/cobbliu/p/4311926.html
mysql有以下几种日志:
错误日志: -log-err
查询日志: -log
慢查询日志: -log-slow-queries
更新日志: -log-update
二进制日志: -log-bin
mysql查看各种日志是否启用:show variables like 'log_%';
在linux下指定日志输出位置:vim /etc/my.cnf
- # 在[mysqld] 中輸入
- #log
- log-error=/usr/local/mysql/log/error.log
- log=/usr/local/mysql/log/mysql.log
- long_query_time=2
- log-slow-queries= /usr/local/mysql/log/slowquery.log
long_query_time =2 --是指执行超过多久的sql会被log下来,这里是2秒
log-slow-queries= /usr/local/mysql/log/slowquery.log --将查询返回较慢的语句进行记录
log-queries-not-using-indexes = nouseindex.log --就是字面意思,log下来没有使用索引的query
log=mylog.log --对所有执行语句进行记录
裸的binlog文件是无法直接查看的,mysqlbinlog这个工具是用来查看binlog文件内容的(使用方式man mysqlbinlog查看),但是使用mysqlbinlog将binlog文件转换成人类可读的内容时却报错:
1
2
|
[xxx@dbhost log]$ mysqlbinlog mysql-bin.000004
mysqlbinlog: unknown variable
'default-character-set=utf8'
|
原因是mysqlbinlog这个工具无法识别binlog中的配置中的default-character-set=utf8这个指令。
两个方法可以解决这个问题
一是在MySQL的配置/etc/my.cnf中将default-character-set=utf8 修改为 character-set-server = utf8,但是这需要重启MySQL服务,如果你的MySQL服务正在忙,那这样的代价会比较大。
二是用mysqlbinlog --no-defaults mysql-bin.000004 命令打开
MySQL 最常用的 4 种日志类型:错误日志、二进制日志、查询日志和慢查询日志。
这 4 种日志各有不同的用途。
系统故障时,建议首先查看错误日志,以帮助用户迅速定位故障原因。
如果要记录数据的变更、数据的备份、数据的复制等操作时,二进制日志必须打开,以
帮助用户进行数据恢复等操作。默认不记录此日志,建议通过--log-bin 选项将此日志打开。
如果希望记录数据库发生的任何操作,包括 SELECT,则需要用--log 将查询日志打开,
此日志默认关闭,一般情况下建议不要打开此日志,以免影响系统整体性能。
如 果希 望查看 系统的 性能 问题, 希望 找到有 性能 问题的 SQL 语 句,则 需要 用
--log-slow-queries 打开慢查询日志。对于大量的慢查询日志,建议使用 mysqldumpslow 工具
来进行汇总查看。