如何在MySql中记录SQL日志记录

My SQL可以用下面方法跟踪sql 语句,以下方法以Windows平台为例,linux雷同:

 
1  配置my.ini文件(在安装目录,linux下文件名为my.cnf
 
  查找到[mysqld]区段,增加日志的配置,如下示例:
[mysqld]
log="C:/temp/mysql.log"
log_slow_queries="C:/temp/mysql_slow.log"
long_query_time=1
 
log指示日志文件存放目录;
log_slow_queries指示记录执行时间长的sql日志目录;
long_query_time指示多长时间算是执行时间长,单位s。
 
Linux下这些配置项应该已经存在,只是被注释掉了,可以去掉注释。但直接添加配置项也OK啦。
 
2  重新启动mysql服务。
 
注意事项:
    A 日志存放目录必须提前存在,否则不能记录日志。这里也局势C:/temp目录必须已经存在
    B 日志文件是linux格式的文本,建议用ultraEdit打开,转换为dos格式查看(否则没有换行,看不懂的)
    C 服务在启动状态下不能删除日志文件,否则就无法记录sql语句了。
    D 不能用ultraEdit直接清除文件内容后保存,否则也记录不下来了。需要重启服务,如果ultraEdit保存了.bak,后记录到此文件中。
    E 可以用notepad清除文本后保存,可以继续记录日志。
 
 
 有时会出现以下错误,说明mysql版本的问题:以上是mysql5.5.8配置的方法,以下是mysql5.6.12版本的配置方法

错误信息一:无法启动mysql服务,错误提示 1067:进程意外终止

警告信息一:option 'general_log': boolean value 'D:/data/mysql.log' wasn't recognized. Set to OFF.

警告信息二:option 'slow_query_log': boolean value 'D:/data/mysql_slow.log' wasn't recognized. Set to OFF.

请参考:http://serverfault.com/questions/397324/mysql-5-6-wont-start-on-os-x-ambiguous-option

http://stackoverflow.com/questions/11606972/how-can-i-enable-slow-query-log-on-my-server

http://stackoverflow.com/questions/6428532/log-queries-not-using-index-mysql

http://dev.mysql.com/doc/refman/5.6/en/slow-query-log.html

最终改成以下形式即可!

explicit_defaults_for_timestamp
general-log=1  
general-log_file="D:/data/mysql.log"
slow_query_log=1
slow_query_log_file="D:/data/mysql_slow.log"
long_query_time=1
log_queries_not_using_indexes =1

posted @ 2013-09-26 16:44  Scaler_SP  阅读(3702)  评论(0编辑  收藏  举报