mysql 開發進階篇系列 40 mysql日誌之二進位制日誌下以及查詢日誌
一.binlog 二進位制其它選項
在二進位制日誌記錄了資料的變化過程,對於資料的完整性和安全性起著非常重要作用。在mysql中還提供了一些其它引數選項,來進行更小粒度的管理。
1.1 binlog-do-db=db_name
該選項告訴主伺服器,當前db_name庫會更新記錄到二進位制日誌中,其它所有沒有顯示指定的資料庫更新時不記錄到二進位制日誌中。
1.2 binlog-ignore-db=db_name
該選項告訴主伺服器,當前db_name庫不會更新記錄到二進位制日誌中,其它所有沒有顯示指定的資料庫會更新到二進位制日誌中。
下面來演示下binlog-ignore-db選項。在my.cnf中加上binlog-ignore-db=test。該test庫更新時不記錄到二進位制日誌中。my.cnf設定如下圖所示:

修改my.cnf後,重啟mysqld服務,檢視最新binlog編號為 000017。

--在test庫的a表中插入一條資料 INSERT INTO a VALUES('cccccc');
檢視binlog二進位制日誌,發現該插入語句,沒有在二進位制日誌中出現。如下圖所示:

接下來註釋my.cnf中的binlog-ignore-db=test。

重啟mysqld服務, 檢視最新binlog編號為000018。如下圖所示:

--在test庫的a表中插入一條資料 INSERT INTO a VALUES('dddddd');
檢視binlog二進位制日誌,發現該插入語句,已經記錄到二進位制日誌中。如下圖所示:

二. 查詢日誌general_log
上面我們知道,在二進位制日誌裡是不包含查詢資料的語句。下面可以使用general_log=1選項引數開啟,來記錄客戶端的所有查詢語句。log_output=FILE,TABLE 選項引數為輸出格式是檔案和表。 啟動mysqld服務後,查詢日誌開始被記錄。
-- 日誌查詢是否開啟,如果general_log的值為ON則為開啟,為OFF則為關閉(預設情況下是關閉的) SHOW VARIABLES LIKE '%general%';
-- 輸出日誌格式為檔案還是表 SHOW VARIABLES LIKE '%log_output%';
對於查詢日誌log這裡就不在演示。在log中記錄了所有資料庫的操作,對於訪問頻繁的系統,此日誌對系統性能的影響較大,一般不建議開啟,如果是對查詢進行跟蹤確認可以開啟記錄一段時間。