目錄
15.1 日誌簡介
MySQL日誌主要分爲4類
● 錯誤日誌,記錄MySQL服務的啓動、運行或停止MySQL服務時出現的問題。
● 查詢日誌,記錄建立的客戶端連接和執行的語句。
● 二進制日誌,記錄所有更改數據的語句。可以用於數據複製。
● 慢查詢日誌,記錄所有執行時間超過long_query_time秒的所有查詢或不使用索引的查詢。
查詢頻繁的數據開開啓慢查詢和通用查詢日誌,會花費很多時間記錄日誌,降低數據庫的性能和磁盤空間。
15.2 二進制日誌,記錄數據庫的變化。
15.2.1 啓動和設置二進制日誌
默認情況下,二進制日誌是關閉的。可以通過修改MySQL的配置文件來啓動和設置二進制日誌。my.ini中[mysqld]組下面有幾個設置是關於二進制日誌的:
[mysqld]
log-bin [=path/ [filename] ]
expire_logs_days = 10 定期清除過期日誌的時間,自動刪除的天數。
max_binlog_size = 100M
啓動後show variables查詢日誌設置
15.2.2 查看二進制日誌
show binary logs語句可以查看當前的二進制日誌文件個數及其文件名。
MySQL二進制日誌並不能直接查看,如果要查看日誌內容,可以通過mysql bin log命令查看。
15.2.3 刪除二進制日誌
1.使用RESET MASTER語句刪除所有二進制日誌。
2.使用PURGE MASTER LOGS語句刪除指定的日誌文件。
Purge { master | binary } logs to ‘log_name’ 刪除比指定編號小的所有日誌;
Purge { master | binary } logs before ‘date’ 刪除指定日期之前的日誌。
15.2.4 使用二進制日誌還原數據庫
如果MySQL服務器啓用了二進制日誌,在數據庫出現意外丟失數據時,可以使用mysqlbinlog工具從指定的時間點開始(例如,最後一次備份)直到現在或另一個指定的時間點的日誌中恢復的數據。
Mysqlbinlog [--start-date/--stop-date | --start-position/--stop-position ] log_filename | mysql -uuser =ppass
15.2.5 暫時停止二進制日誌功能
通過SET SQL_LOG_BIN語句可以使用MySQL暫停或者啓動二進制日誌。
暫停二進制日誌:SET sql_log_bin = 0;
恢復二進制日誌 : SET sql_log_bin = 1;
15.3 錯誤日誌
15.3.1 啓動和設置錯誤日誌
在默認情況下,錯誤日誌會記錄到數據庫的數據目錄下。如果沒有在配置文件中指定文件名,則文件名默認爲hostname.err。
[mysqld]
log-error=[path / [file_name] ]
配置好則可以重啓啓動。
15.3.2 查看錯誤日誌
通過錯誤日誌可以監視系統的運行狀態,便於及時發現故障和修復故障。MySQL錯誤日誌是以文本文件形式存儲的,可以使用文本編輯器直接查看MySQL錯誤日誌。可以在mysql.ini配置文件修改位置和名字。
SHOW VARIABLES LIKE 'log_error';
15.3.3 刪除錯誤日誌
MySQL的錯誤日誌是以文本文件的形式存儲在文件系統中。可以直接刪除錯誤日誌文件。
mysqladmin -u root -p flush-logs
15.4 通用查詢日誌
15.4.1 啓動和設置通用查詢日誌
打開通用查詢日誌,在my.ini(或my.cnf)的[mysqld]組下加入log選項。
[mysqld]
log[=path / [filename]]
15.4.2 查看通用查詢日誌
通用查詢日誌是以文本文件的形式存儲在文件系統中的。可以使用文本編輯器直接打開通用日誌文件進行查看,Windows下可以使用記事本,Linux下可以使用vim和gedit等。
15.4.3 刪除通用查詢日誌
可以用直接刪除日誌文件的方式刪除通用查詢日誌。
重新建立新的通用查詢日誌文件:
mysqladmin –u root –p flush-logs或者客戶端flush logs;
15.5 慢查詢日誌
15.5.1 啓動和設置慢查詢日誌
MySQL中慢查詢日誌默認是關閉的,可以通過配置文件my.ini或者my.cnf中的log-slow-queries選項打開,也可以在MySQL服務啓動的時候使用--log-slow-queries[=file_name]啓動慢查詢日誌。
[mysqld]
log-slow-queries[=path / [filename] ]
15.5.2 查看慢查詢日誌
MySQL的慢查詢日誌是以文本形式存儲的,可以直接使用文本編輯器查看。
15.5.3 刪除慢查詢日誌
慢查詢日誌也可以直接刪除。刪除後在不重啓服務器的情況下。
重新生成慢查詢日誌文件:
mysqladmin –u root –p flush-logs
flush logs