在 SQL Server 中我們習慣使用「事件探查器」來追蹤 SQL 執行情況,那麼在 MySQL 中該如何實現同樣的功能呢?其實方法非常直觀:開啟 MySQL 的一般查詢日誌(General Query Log),透過查看日誌檔案即可完整記錄所有執行的 SQL 語句。
以 MySQL 5.0.37 Community Edition 為例,配置檔案 my.ini 通常位於安裝目錄下(例如 G:\Program Files (x86)\MySQL\MySQL Server 5.0)。
my.ini。[mysqld] 區塊。log=存放日誌的路徑/my.log(例如 log=G:/Program Files (x86)/MySQL/MySQL Server 5.0/data/mysql.log)。重啟後,在資料目錄(預設為 data 資料夾)下就會生成 mysql.log 檔案,裡面記錄了所有客戶端連線、斷開以及執行的每一條 SQL 語句。
/etc/my.cnf(或 /etc/mysql/my.cnf)。[mysqld] 區塊下加入:log=存放日誌的路徑/my.log。service mysql restart 或 systemctl restart mysqld 重啟服務。SELECT),長期開啟可能產生大量磁碟 I/O,建議僅在除錯或審計期間啟用。log_output 參數,可將日誌輸出至 TABLE(mysql.general_log)或 FILE,方便直接用 SQL 查詢。slow_query_log)搭配 long_query_time=0,或使用 Percona Toolkit 的 pt-query-digest 分析。