mysql日誌,mysql記錄檔在哪
mysql日誌分為4種分別是:二進位日誌、錯誤記錄檔、通用查詢日誌和慢查詢日誌。二進位日誌:以二進位檔案的形式記錄了資料庫中的操作,但不記錄查詢語句。錯誤記錄檔:記錄mysql伺服器的啟動、關閉的時間和運行錯誤等資訊通用查詢日誌:記錄使用者登入和記錄查詢的資訊慢查詢日誌:記錄執行時間超過指定時間的操作。註:除了二進位日誌外,其他日誌都是文字檔。記錄檔通常儲存在資料庫的資料目錄下。預設只啟動錯誤記錄檔的功能。其他3類日誌都需要資料庫管理員進行設定。日誌功能會降低資料庫執行速度,記錄日誌要花費很多時間。並且會佔用大量的硬碟空間。1、二進位日誌:也叫變更日誌(update log)用於記錄資料庫變化。預設二進位日誌功能是關閉的。可通過my.cnf或my.ini檔案的log-bin選項可以開啟二進位日誌。將log-bin選項加入到my.cnf或者my.ini檔案的[mysqld]組中,如: #my.cnf(Linux作業系統下)或者my.ini(windows作業系統下) [mysqld] log-bin[=Dir\[filename]]其中,DIR參數指定二進位檔案的儲存路徑;filename參數指定二進位檔案的檔案名稱,形式為filename.number,number形式為000001、000002等。每次重啟mysql服務都會產生一個新的二進位記錄檔,這些記錄檔的"number"會不斷遞增。原來的記錄檔任然存在,另外還會產生一個名為filename.index的檔案。該檔案儲存體所有二進位記錄檔的清單。註:二進位日誌與資料庫的資料檔案不要放同一塊硬碟,如果資料檔案所在硬碟被破壞,也可以用另一塊硬碟上的二進位日誌來恢複資料庫檔案。例:在my.ini檔案的[mysqld]組中添加下面的語句 [mysqld] log-bin註:如果沒dir和filename參數,預設儲存在資料庫的資料目錄下,預設檔案名稱為hostname-bin.number,其中hostname表示主機名稱。重啟mysql伺服器後可在資料目錄下看到hjh-bin.-000001這個檔案,同事還產生了hjh-bin.index檔案。此處mysql伺服器主機名稱為hjh。a、查看二進位日誌格式:mysqlbinlog filename.number註:該命令會在當前檔案夾下尋找指定的二進位日誌。因此需要在二進位日誌filename.number所在目錄下運行該命令。如:C:/log>mysqlbinlog mylog.000001如:mysqlbinlog C:\log\mylog.000001b、刪除所有二進位日誌刪除所有二進位日誌,格式:reset master;c、根據編號來刪除二進位日誌,該命令可以刪除指定二進位日誌編號之前的日誌。格式:PURGE MASTER LOGS TO 'filename.number';如:PURGE MASTER LOGS TO 'mylog.000004';執行後編號01、02、03的二進位日誌將被刪除。d、根據建立時間刪除二進位日誌,刪除指定時間之前建立的二進位日誌。如:PURGE MASTER LOGS TO 'yyyy-mm-dd hh:mm:ss';e、使用二進位日誌還原資料庫(先用最近備份檔案來還原,之後用二進位日誌還原)格式,如:mysqlbinlog filename.number|mysql -u root -p註:編號小的先還原,如mysqlbinlog mylog.000001|mysql -u root -pmysqlbinlog mylog.000002|mysql -u root -pf、暫時停止二進位日誌功能,如:set SQL_LOG_BIN=0;重新開啟格式:set SQL_LOG_BIN=1;2、錯誤記錄檔預設錯誤記錄檔功能是開啟的。而且錯誤記錄檔無法被禁止。儲存在mysql資料庫的資料檔案夾下。通常名為hostname.err。其中hostname表示mysql伺服器主機名稱。儲存位置可以通過log-error選項來設定。將log-error選項加入到my.ini或者my.inf檔案的[mysqld]組中。如: #my.cnf(Linux作業系統下)或者my.ini(windows作業系統下) [mysqld] log-error=Dir/[filename] 註:filename參數是錯誤記錄檔名,沒有該參數時預設為主機名稱。由於是文字檔所以可以直接查看。a、刪除錯誤記錄檔可以用mysqladmin命令開啟新的錯誤記錄檔。如:mysqladmin -uroot -p flush-logs執行該命令後會自動建立一個新的錯誤記錄檔。舊的錯誤記錄檔仍然保留著,只是已經更名為filename.err-old。或者登入資料庫後用flush logs;來開啟新的錯誤記錄檔。3、通用查詢日誌預設是關閉的,通過my.cnf或者my.ini檔案的log選項可以開啟通用查詢日誌。形式如: #my.cnf(Linux作業系統下)或者my.ini(windows作業系統下) [mysqld] log[=Dir\[filename]]如果不指定檔案名稱,預設檔案名稱為hostname.log。hostname是mysql伺服器的主機名稱。由於是文字檔所以可以直接查看。新的通用查詢日誌會直接覆蓋舊的查詢日誌,不用手動刪除。如:mysqladmin -uroot -p flush-logs4、慢查詢日誌預設是關閉的,通過my.cnf或者my.ini檔案的log-slow-queries選項可以開啟慢查詢日誌。通過long_query_time選項來設定時間值,時間以秒為單位。超過這個值就會被記錄到該日誌,形式如: #my.cnf(Linux作業系統下)或者my.ini(windows作業系統下) [mysqld] log-slow-queries[=Dir\[filename]] long_query_time=n 註:產生的記錄檔名為filename-slow.log。如不指定檔案名稱,預設檔案名稱為hostname-slow.log,預設n為10秒。benchmark(count,expr)函數可以測試執行count次expr。a、刪除慢查詢日誌命令如:mysqladmin -u root -p flush-logs,新的慢查詢日誌會直接覆蓋舊的查詢日誌,不需要手動刪除。也可以手工刪除後重啟服務會產生新的 慢查詢日誌。如果要備份舊的慢查詢日誌可以將舊的記錄檔改名,然後重啟服務。