天天看點

如何在MySql中記錄SQL日志

sql server有一個sql profiler可以實時跟蹤伺服器執行的sql語句,這在很多時候調試錯誤非常有用。例如:别人寫的複雜代碼、生産系統、無調試環境、無原代碼... ...

查了一下資料,my sql可以用下面方法跟蹤sql 語句,以下方法以windows平台為例,linux雷同:

1  配置my.ini檔案(在安裝目錄,linux下檔案名為my.cnf)

  查找到[mysqld]區段,增加日志的配置,如下示例:

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清除文本後儲存,可以繼續記錄日志。(怪怪的,也不建議用)

繼續閱讀