是MySQL中最重要的日誌,當MySQL服務啓動中止時,以及其餘運行過程當中發生錯誤的信息,能夠查看此日誌。mysql
show variables like 'log_error';
二進制日誌(binLog)記錄了全部DLL語句(數據庫表結構以及定義),還有DML語句(數據操做語言)增刪改。sql
二進制日誌默認沒有開啓,須要本身打開數據庫
先找到MySQL配置文件地址工具
#配置開啓binlog日誌, 日誌的文件前綴爲 mysqlbin -----> 生成的文件名如 : mysqlbin.000001,mysqlbin.000002 log_bin=mysqlbin #配置二進制日誌的格式 binlog_format=STATEMENT //四個參數能夠配置
記錄的都是SQL語句,當數據進行修改都會被記錄,在主從複製的時候,會將日誌解析成爲源文本,再執行一遍。日誌
查看日誌文件 :code
mysqlbin.index : 該文件是日誌索引文件 , 記錄日誌的文件名;orm
mysqlbing.000001 :日誌文件blog
查看日誌內容 :索引
mysqlbinlog mysqlbing.000001;
會記錄每一行的數據變化,假如更新整個表,會記錄每一行的數據變動。it
若是日誌格式是 ROW , 直接查看數據 , 是查看不懂的 ; 能夠在mysqlbinlog 後面加上參數 -vv
mysqlbinlog -vv mysqlbin.000002
這是默認的數據格式,就是混合了STATEMENT和ROW兩種格式,默認狀況下采用STATEMENT,可是在特殊狀況下會用ROW,MIXED能採用他們的優勢,避免缺點。
比較大的系統,若是日誌不進行刪除會消耗大量磁盤空間。
經過Reset Master指令刪除所有binlog日誌,刪除之後將從xxxx.0000001開始
Reset Master //刪除指令
執行指令 purge master logs to 'mysqlbin.******'
,該命令將刪除 ******
編號以前的全部日誌。
執行指令 purge master logs before 'yyyy-mm-dd hh24:mi:ss'
,該命令將刪除日誌爲 "yyyy-mm-dd hh24:mi:ss" 以前產生的全部日誌 。
設置參數 --expire_logs_days=# ,此參數的含義是設置日誌的過時天數, 過了指定的天數後日志將會被自動刪除,這樣將有利於減小DBA 管理日誌的工做量。
配置以下 :
查詢日誌中記錄了客戶端的全部操做語句,而二進制日誌不包含查詢數據的SQL語句。
默認狀況下, 查詢日誌是未開啓的。若是須要開啓查詢日誌,能夠設置如下配置 :
#該選項用來開啓查詢日誌 , 可選值 : 0 或者 1 ; 0 表明關閉, 1 表明開啓 general_log=1 #設置日誌的文件名 , 若是沒有指定, 默認的文件名爲 host_name.log general_log_file=file_name
慢查詢日誌記錄了全部執行時間超過參數 long_query_time 設置值而且掃描記錄數不小於 min_examined_row_limit 的全部的SQL語句的日誌。long_query_time 默認爲 10 秒,最小爲 0, 精度能夠到微秒。
慢查詢日誌默認是關閉的 。能夠經過兩個參數來控制慢查詢日誌 :
# 該參數用來控制慢查詢日誌是否開啓, 可取值: 1 和 0 , 1 表明開啓, 0 表明關閉 slow_query_log=1 # 該參數用來指定慢查詢日誌的文件名 slow_query_log_file=slow_query.log # 該選項用來配置查詢的時間限制, 超過這個時間將認爲值慢查詢, 將須要進行日誌記錄, 默認10s long_query_time=10
若是慢查詢日誌內容不少, 直接查看文件,比較麻煩, 這個時候能夠藉助於mysql自帶的 mysqldumpslow 工具, 來對慢查詢日誌進行分類彙總。