mysql日志學習總結

一,日志簡介

 

mysql日志主要分為四類,使用這些日志文件,可以查看mysql內部發生的事情。這四類日志分別為:

 

錯誤日志

 

記錄mysql服務的啟動、運行或停止mysql的服務時出現的問題。

 

查詢日志

 

記錄建立的客戶端連接和執行語句。

 

二進制日志

 

記錄所有更改數據的語句,可以用於數據復制。

 

慢查詢日志

 

記錄所有執行時間超過long_query_time的所有查詢或不適用索引的查詢。

 

二,二進制文件

 

啟動和設置二進制文件

 

在my.cnf中[mysqld]有幾個二進制的設置:

  log-bin  [=path/ [filename] ]

  expire_logs_days = 10

  max_binlog_size = 100M

 

log-bin設定二進制日志,path表明二進制文件所在路徑;filename指定文件名稱;其中.index為其他二進制日志清單。

 

expire_binlog_size設定清除過期日志的時間。默認值是零,表示沒有自動清除。

max_binlog_size設定單個文件的大小 ,當超出文件大小限制,日志就會發生滾動,關閉當前的文件,重新打開一個新的日志文件,不能將該變量設置為大於1G或小於4kb。

 

可以使用show variables like ‘log_%’;日志的設置。

建議:資料庫文件最好不要和日志文件放在同一個磁盤上。

查看二進制文件

語句:show binary bogs;

查看二進制日志文件個數及文件名。

使用命令mysqlbinlog查看日志格式,

刪除二進制日志

語句:reset master ;刪除二進制文件。

刪除指定二進制文件:

purge (master | binary ) logs to ‘log_name’

purge (master | binary ) logs before 'date'

使用二進制文件恢復資料庫

mysqlbinlog恢復數據的語法如下:

 mysqlbinlog [option] filename mysql -u user p password    

option是一些可選項,filename是日志文件名。比較常用的兩對option參數是–start-date、–stop-date和–start-position、–stop-position。

–start-date、–stop-date可以設置恢復資料庫的起始時間點和結束時間點。–start-position、–stop-position可以指定恢復資料庫的開始位置和結束位置。

 

暫時停止二進制日志功能

 

可以在配置文件裡修改,但是在配置文件裡修改需要重啟資料庫。所以使用命令修改,

set sql_log_bin =  [ 0 | 1 ]         零為暫停;1位恢復。

 

三,錯誤日志

 

記錄mysql服務的啟動、運行或停止mysql的服務時出現嚴重錯誤的相關信息。

 

啟動和設置錯誤日志

 

在配置文件中,配置如下:

log-error   [=path/ [filename] ]    path為日志文件所在的目錄路徑,file_name為日志名。修改配置項後,需要重啟mysql服務以生效。

 

查看錯誤日志

 

查看錯誤日志可以監控系統的運行狀態,便於及時發現故障、修復故障。

 

查看錯誤日志路徑:

show  variables like 'log_err';

 

找到日志文件所在,可以用常用的linux命令查看。

 

刪除錯誤日志

 

mysql的錯誤日志是以文本文件的形式在文件系統中存儲的,可以直接刪除。

 

flush logs隻會重新打開日志文件,不會備份和創建的操作。如果日志文件不存在使用flush logs 可以自動創建。

 

刪除錯誤日志之後,需要在伺服器端執行以下命令:

mysqladmin -u root -p  flush-logs

 

四,通用查詢日志

 

通用查詢日志記錄包括mysql的所有用戶操作,啟動和關閉服務、執行查詢和更新語句等。

 

啟動和設置通用查詢日志

 

log    [=path/ [filename] ]   path為日志文件所在的目錄路徑,file_name為日志名。修改配置項後,需要重啟mysql服務以生效  

 

查看通用查詢日志

 

windows下,使用記事本就可以打開;linux下使用more,less,cat等命令查看。

刪除通用查詢日志

 

通用查詢日志為文本文件格式,所以可以直接刪除。重新建立新的日志文件,可以使用mysqladmin flush-log

 

五,慢查詢日志

 

記錄所有執行時間超過long_query_time的所有查詢或不適用索引的查詢;通過慢查詢日志,可以找出執行時間較長、執行效率較低的語句,

然後進行優化。

 

啟動和設置慢查詢日志

 

在my.cnf的配置文件如下:

[mysqld]

  log-slow-queries   [=path/ [filename] ]

  long_query_time=n

 

path為日志文件所在的目錄路徑,filename為日志名,n為時間,單位為秒。修改配置項後,需要重啟mysql服務以生效

 

查看慢查詢日志

 

可以使用慢查詢日志分析工具查看;比較著名的有:mysql dump slow、mysql sla  、mysql log filter

 

刪除慢查詢日志

 

可以直接刪除。

You May Also Like