在開發過程中有時候會遇到sql相關的問題,但是有時候代碼中不會直接看到真實的sql,想要看到mysql中實際執行的是什麼sql,可以通過開啟日誌跟蹤方式查看。 1 開啟日誌跟蹤 開啟之後可以查看系統參數是否已經修改成功: 2 跟蹤日誌保存位置 跟蹤日誌可以有兩種方式保存:(1) 保存到文件預設情況下 ...
在開發過程中有時候會遇到sql相關的問題,但是有時候代碼中不會直接看到真實的sql,想要看到mysql中實際執行的是什麼sql,可以通過開啟日誌跟蹤方式查看。
1 開啟日誌跟蹤
SET GLOBAL general_log = ON;
開啟之後可以查看系統參數是否已經修改成功:
SHOW VARIABLES LIKE 'general_log%';
2 跟蹤日誌保存位置
跟蹤日誌可以有兩種方式保存:
(1) 保存到文件
預設情況下是保存到文件,如果不是,則可以執行以下sql語句進行修改:
SET GLOBAL log_output = 'file';
執行以下命令查看修改結果:
SHOW VARIABLES LIKE 'general_log%';
返回結果中general_log_file的值即為保存的文件路徑。如果是linux系統,執行tail -100f 文件名 可以實時查看sql的執行情況
(2) 保存到表
SET GLOBAL log_output = 'table';
sql的執行情況會記錄在表mysql.general_log中,可以執行以下語句查看:
SELECT * FROM mysql.general_log ORDER BY event_time DESC LIMIT 100;
3 關閉跟蹤
跟蹤會消耗資源,問題定位完之後一定要關閉跟蹤,執行以下sql關閉跟蹤:
SET GLOBAL general_log = OFF;