在軟體應用程式中,記錄檔案會記錄系統中執行的操作以及執行操作的人員。如果出現意外情況,無論是安全漏洞、系統當機還是效能變慢,記錄檔案都可以成為管理員的得力助手。MySQL 就有幾個不同的記錄檔案,可以幫助你找出 MySQL 伺服器內部發生的事情。今天的文章是關於 MySQL 記錄檔案的入門知識。日後,當我們討論 Navicat Monitor for MySQL/MariaDB 的監控時,我們將引用這個主題。
記錄類型
MySQL 支援多種記錄類型,但請留意,除了 Windows 上的錯誤記錄外,其他記錄預設是停用的。這是記錄類型清單:
記錄檔案 | 描述 |
---|---|
錯誤記錄 | 在啟動、執行或停止 mysqld 時遇到的問題。 |
isam 記錄 | 記錄對 ISAM 資料表的所有變更。僅用於偵錯 ISAM 程式碼。 |
一般查詢記錄 | 建立連線和執行的查詢。 |
更新記錄 | 不推薦使用:儲存所有變更資料的語句。 |
二進位記錄 | 儲存所有變更某些內容的語句。也用於複寫。 |
慢速記錄 | 儲存所有執行時間超過 long_query_time 或不使用索引的查詢。 |
其中最重要的是錯誤、一般、二進位和慢速記錄,因此今天我們將重點集中在前兩個,而最後兩個會留待下週。
錯誤記錄
解決伺服器問題的第一個資源是錯誤記錄檔案。MySQL 伺服器使用錯誤記錄檔案記錄與任何阻止伺服器啟動的問題相關的資訊。你可在 my.ini 檔案中指定的資料目錄中找到錯誤記錄檔案。Windows 中預設的資料目錄位置是「C:\Program Files\MySQL\MySQL Server 5.7\data」或「C:\ProgramData\Mysql」。請注意,預設情況下,「C:\ProgramData\」目錄是隱藏的,因此你可能需要變更資料夾選項以查看目錄及其內容。
圖 1-Windows 中的 MySQL 錯誤記錄
對於其他平台,參考 log_error 配置變數可能會有所幫助。如果使用 Navicat 管理資料庫,則可以使用「伺服器監控」工具尋找系統變數。你可以在「工具」主功能表命令存取它。
在「伺服器監控」中,按一下中間的「變數」索引標籤,然後向下捲動到清單中的 log_error:
圖 2-在 Navicat 的伺服器監控工具中的 log_error 伺服器變數
一般查詢記錄
顧名思義,一般查詢記錄提供了 MySQL 作業的一般記錄。伺服器會將用戶端連線或中斷連線時以及從用戶端收到的每個 SQL 語句寫入此記錄中。當你懷疑用戶端應用程式中存在錯誤並想要知道用戶端傳送到資料庫的內容時,一般查詢記錄就非常有用。
一般查詢記錄預設是停用的。若要啟用它,請將 general_log 變數設定為 1(或在 Navicat 中設定為 ON)。不分配 general_log 任何值也會啟用它。將其重新設置為 0(或在 Navicat中設定為 OFF)將會停用記錄。若要指定記錄檔案的名稱,請將用 general_log_file 變數指定檔案名稱。若要指定將記錄輸出到一個檔案,請使用 log_output 系統變數來指定檔案名稱。MySQL 還可以將輸出傳送到 mysql 系統資料庫中的 slow_log 資料表。實際上,你可以選取檔案輸出、資料表輸出或兩者都選取。我們將在下一篇文章中詳細討論這一點。
圖 3-在 Navicat 的伺服器監控工具中的 general_log 和 general_log_file 伺服器變數