日誌簡介
MySQL日誌分爲四類:
- 二進制日誌
- 錯誤日誌
- 查詢日誌
- 慢查詢日誌
默認情況下所有的日誌都是在MySQL目錄中,啓動日誌功能會降低MySQL的性能,比如,在查詢非常頻繁的數據庫中開啓了查詢日誌,和慢查詢日誌,MySQL數據庫會花費很多時間記錄日誌,日誌還會佔用大量空間
二進制日誌
二進制日誌主要是記錄MySQL數據庫的變化,,二進制包含了所有更新了數據或者潛在跟新了數據,二進制包含了每個更新數據庫語句的執行時間信息,但是不包含沒有修改任何數據的語句,二進制日誌的目的是最大可能的恢復數據庫
-
啓動二進制日誌
修改配置文件如下圖,默認MySQL配置文件在 /etc/mysql/mysql.conf.d/mysql.conf windows的是 my.ini
把log_bin 和 server-id 打開就行
expire_logs_days 清除過期日誌時間
max_binlog_size 單個文件大小限制,,如果二進制日誌寫入的內容大小超過給定值,日誌就會回滾 -
show variables like ‘log_%’
查看日誌變量
可以看到開啓成功了
上圖中 mysql-bin.index 裏面是所有日誌文件的清單,
mysq-bin.000001 和 mysq-bin.000002 是 產生的日誌文件
刪除二進制日誌文件
-
使用 reset master
刪除所有二進制文件,從000001開始編號
-
使用 purge master logs to “binlog.000003”
這條面命令將會刪除 編號03之前的日誌 -
purge master logs before “20160130”
將會刪除2016.1.30 日之前創建的日誌
show binary logs查看二進制日誌
使用二進制恢復數據庫
mysqlbinlog --stop-date=“2016-01-03”
將會把數據庫到2016.1.30 日之前的數據恢復
暫時停止二進制功能
- 暫停
set sql_log_bin = 0 - 恢復
set sql_log_bin = 1
錯誤日誌
錯誤日誌包含了MySQL啓動時和停止時的信息,還有MySQL在運行過程中出現的錯誤信息
查看錯誤日誌
通用查詢日誌
使用通用查詢日誌,在mysql.conf中添加log參數
log = path/file.name
慢查詢日誌
log-slow-queries
long_query_time