如何在MySql中記錄SQL日誌
SQL server有一個sql profiler可以實時跟蹤服務器執行的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清除文本後保存,可以繼續記錄日誌。(怪怪的,也不建議用)
最後更新:2017-04-03 12:56:39
上一篇:
在與 SQL Server 建立連接時出現與網絡相關的或特定於實例的錯誤
下一篇:
System.Runtime.InteropServices.COMException (0x8004E00F): COM+ 無法與 Microsoft 分布式事務協調程序交談 (異常來自 HRESU
Java Reflection(八):注解
RHEL安裝heartbeat報錯: heartbeat: udpport setting must precede media statements
11月3日雲棲精選夜讀:《maven實戰》讀書筆記2——maven安裝(windows和eclipse插件)
如何給視頻加邊框
Android開發6——布局中的wrap_content和fill_parent以及match_parent
如何在 AWS EC2 的 Linux 服務器上開放一個端口
企業沒“文化”很可怕
Android的內容觀察者
OA協同辦公考勤比傳統考勤更方便的三個體現
《Spring Boot官方指南》27.1.11. CORS support