天天看點

MySQL日志檔案

1)錯誤日志(error log)

錯誤日志對mysql的啟動、運作、關閉過程進行了記錄。

通過show variables like ‘log_error‘來定位該檔案。

2)二進制日志(binlog)

二進制日記記錄了對mysql資料庫執行更改的所有操作,但是不包括select和show這類操作。

通過配置參數log-bin [=name]可以啟動二進制日志。

相關的參數:

max_binlog_size:指定了單個二進制日志檔案檔案的最大值,如果超過該值,則産生新的二進制日志檔案,字尾名+1,并記錄到.index檔案。

binlog_cache_size:當使用事務的表存儲引擎時,所有未送出的二進制日記會被記錄到一個緩沖中去,等該事務送出時直接将緩沖中的二進制日記寫入二進制檔案,而緩沖的大小由binlog_cache_size決定,預設大小為32k。

sync_binlog:參數sync_binlog=[n],表示每寫緩沖多少次就同步到磁盤。

binlog-do-db:要同步的資料庫。

binlog-ignore-db:不要同步的資料庫。

log-slave-update:如果slave需要将從master取得并執行的二進制日志寫入自己的二進制日志檔案中去,就要設定log-slave-update。

bin_format:binlog日志格式,有statement、row、mixed三種格式。

3)慢查詢日志(slow query log)

慢查詢日志可幫助dba定位可能存在問題的sql語句,進而進行sql層面的優化。可以通過設一個門檻值,将運作時間超過該值的所有sql語句都記錄到慢查詢日記中,預設為10秒。

檢查是否開啟慢查詢日記:

檢視慢查詢日志:

mysql5.6.5版本開始新增了一個參數log_throttle_queries_not_using_indexes,用來标示每分鐘允許記錄到slow log的且未使用索引的sql語句次數。

4)查詢日志(log)查詢日記記錄了所有對mysql資料庫請求的資訊,無論這些請求是否得到了正确的執行。預設檔案名為:主機名.log

開啟查詢日志:

檢視查詢日志:

參考:《mysql技術内幕:innodb存儲引擎》