mysql常見的日誌類型有五種:錯誤記錄檔、二進位日誌、查詢日誌、慢查日誌和中繼日誌。
一、錯誤記錄檔
錯誤記錄檔包含四類資訊:
(1) 伺服器啟動和關閉進程過程中的資訊;
(2) 伺服器運行過程中的錯誤資訊;
(3) 事件調度器運行一個事件時產生的資訊;
(4) 在從伺服器上啟動從伺服器處理序時產生的資訊。
在mysql中查看錯誤記錄檔的存放路徑:
| 代碼如下 |
複製代碼 |
# mysql -u root -p 123456 mysql> SHOW VARIABLES LIKE '%err%'; 查看警告資訊的狀態: mysql> SHOW VARIABLES LIKE 'log%'; |
如果結果中“log_warnings“的值為1,說明警告資訊也寫到了錯誤記錄檔中;為0,則說明沒寫到錯誤記錄檔中。
My.ini配置資訊:
| 代碼如下 |
複製代碼 |
#Enter a name for the error log file. Otherwise a default name will be used. #log-error=d:/mysql_log_err.txt |
二、二進位日誌
二進位日誌有兩種功能:
(1) 做即時間點復原(基於時間點恢複的)
(2) 複製(將主伺服器發生的任何改變複製到從伺服器上保證資料一致)
二進位日誌儲存的資訊是每一個明確或潛在的有可能使資料庫中的資料發生改變的SQL語句。
查看是否開啟二進位日誌:
| 代碼如下 |
複製代碼 |
| mysql> SHOW VARIABLES LIKE '%bin%'; |
如果結果中“log_bin”的值為“ON”則開啟了二進位日誌;為“OFF”則沒有開啟二進位日誌。
查看有哪些二進位日誌:
| 代碼如下 |
複製代碼 |
mysql> SHOW BINARY LOGS;
|
說明:由於二進位記錄檔不是單獨的一個,而是多個,所以此時你看到的結果可能不止一個。要想看當前資料庫正在使用的二進位記錄檔是哪一個,用下面命令:
| 代碼如下 |
複製代碼 |
| mysql> SHOW MASTER STATUS; |
二進位日誌有三種格式:基於語句的,記錄的是SQL語句;基於行的,記錄的是SQL語句執行的結果;混合的。
| 代碼如下 |
複製代碼 |
mysql> SHOW BINLOG EVENTS IN 'binlog_name' FROM 107; |
查看二進位日誌從某個位置發生改變的情況
說明:由於二進位日誌的檔案不是文字檔,所以一般的查看命令並不能查看二進位記錄檔內容,要想查看二進位記錄檔內容,就需要一個特殊的命令:mysqlbinlog
| 代碼如下 |
複製代碼 |
# mysqlbinlog 專門查看二進位記錄檔的內容 --start-position 起始位置 --stop-position 結束位置 --start-datetime 起始時間 --stop-datetime 結束時間 例:# mysqlbinlog --start-position=‘107’ mysql-bin.00002 例:# mysqlbinlog --start-position=‘107’ --stop-position=‘381’ mysql-bin.00002 例:# mysqlbinlog --start-datetime=‘2012-04-08 10:00:00’ --stop- datetime=‘2012-04-08 20:00:01’ mysql-bin.00002 |
My.ini配置資訊:
| 代碼如下 |
複製代碼 |
#Enter a name for the binary log. Otherwise a default name will be used. #log-bin=d:/mysql_log_bin |
三、查詢日誌
查看查詢日誌狀態:
| 代碼如下 |
複製代碼 |
mysql> SHOW VARIABLES LIKE 'general_log';
|
如果結果中的“general_log”的值為“ON“,則是開啟了查詢日誌;如果為”OFF“,則沒有開啟查詢日誌。
指定查詢日誌的路徑:只要在general_log_file= 後面寫上路徑即可。
My.ini配置資訊:
| 代碼如下 |
複製代碼 |
#Enter a name for the query log file. Otherwise a default name will be used. #log=d:/mysql_log.txt |
四、慢查日誌
查看慢查日誌狀態看狀態是否開啟
| 代碼如下 |
複製代碼 |
mysql> SHOW VARIABLES LIKE 'SLOW%';
|
如果"slow_query_log"的值為”ON“,則開啟了慢查詢日誌;如果為”OFF“,則沒有開啟慢查詢日誌
說明:其中查詢日誌和慢查日誌都可記錄到表裡或檔案裡,也可以二者都有記錄。
My.ini配置資訊:
| 代碼如下 |
複製代碼 |
#Enter a name for the query log file. Otherwise a default name will be used. #log=d:/mysql_log.txt |
五、中繼日誌
在mysql伺服器中從架構中的從伺服器上用到的,當從伺服器想要和主伺服器進行資料的同步時,從伺服器將主伺服器的二進位記錄檔拷貝到己的主機上放在中繼日誌中,然後調用SQL線程按照拷中繼記錄檔中的二進位記錄檔執行以便就可達到資料的同步。
開啟的方法:(只在從伺服器上開啟)
配置mysql的主設定檔:
relay-log= 指定中繼日誌的位置和名字
relay-log-index= 指定中繼日誌的名字的索引檔案的位置和名字
My.ini配置資訊:
| 代碼如下 |
複製代碼 |
#Enter a name for the update log file. Otherwise a default name will be used. #log-update=d:/mysql_log_update.txt |