如何在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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM