mysql日誌型別

2021-10-04 13:04:45 字數 3183 閱讀 3312

日誌型別

mysql日誌主要包含:錯誤日誌、查詢日誌、慢查詢日誌、事物日誌、二進位制日誌;

日誌是mysql資料庫的重要組成部分。日誌檔案中記錄著mysql資料庫執行期間發生的變化;也就是說用來記錄mysql資料庫的客戶端連線狀況、sql語句的執**況和錯誤資訊等。當資料庫遭到意外的損壞時,可以通過日誌檢視檔案出錯的原因,並且可以通過日誌檔案進行資料恢復。

錯誤日誌

在mysql資料庫中,錯誤日誌功能是預設開啟的。並且,錯誤日誌無法被禁止。預設情況下,錯誤日誌儲存在mysql資料庫的資料檔案中。錯誤日誌檔案通常的名稱為hostname.err。其中,hostname表示伺服器主機名。

錯誤日誌資訊可以自己進行配置的,錯誤日誌所記錄的資訊是可以通過log-error和log-warnings來定義的,其中log-err是定義是否啟用錯誤日誌的功能和錯誤日誌的儲存位置,log-warnings是定義是否將警告資訊也定義至錯誤日誌中。預設情況下錯誤日誌大概記錄以下幾個方面的資訊:伺服器啟動和關閉過程中的資訊(未必是錯誤資訊,如mysql如何啟動innodb的表空間檔案的、如何初始化自己的儲存引擎的等等)、伺服器執行過程中的錯誤資訊、事件排程器執行乙個事件時產生的資訊、在從伺服器上啟動伺服器程序時產生的資訊。

錯誤日誌可以使用log_err在主配置檔案中手動設定

在my.cnf中

[mysqld_safe]

log_error=/usr/local/mysql/***.err(名字可以自己指定否則預設為主機名)修改完需要重啟mysql生效。

log_error可以直接定義為檔案路徑,也可以為on|off;log_warings只能使用1|0來定義開關啟動。

在mysql資料庫中,可以使用mysqladmin命令開啟錯誤日誌。

#mysqladmin -uroot –p flush-logs

或者進入mysql後使用語句

mysql> flush logs;

二進位制日誌

二進位制日誌也叫作變更日誌,主要用於記錄修改資料或有可能引起資料改變的mysql語句,並且記錄了語句發生時間、執行時長、操作的資料等等。所以說通過二進位制日誌可以查詢mysql資料庫中進行了哪些變化。一般大小體積上限為1g。

檢視二進位制日誌開啟狀態:

其中log_bin可以直接定義為檔案路徑也可以定義為on|off。

開啟二進位制日誌:

在my.cnf配置檔案中【mysqld】中新增

[mysqld]

log-bin=存放路徑/名稱

log-bin=/usr/local/mysql/data/mysql-bin.log

之後重啟mysql即可。

mysql中檢視二進位制日誌:查詢日誌

通用查詢日誌

預設情況下查詢日誌是關閉的。由於查詢日誌會記錄使用者的所有操作,其中還包含增刪查改等資訊,在併發操作大的環境下會產生大量的資訊從而導致不必要的磁碟io,會影響mysql的效能的。如若不是為了除錯資料庫的目的建議不要開啟查詢日誌。

檢視查詢日誌是否開啟:

慢查詢日誌

慢查詢日誌是用來記錄執行時間超過指定時間的查詢語句。通過慢查詢日誌,可以查詢出哪些查詢語句的執行效率很低,以便進行優化。一般建議開啟,它對伺服器效能的影響微乎其微,但是可以記錄mysql伺服器上執行了很長時間的查詢語句。可以幫助我們定位效能問題的。

慢查詢日誌是以什麼時間為標準的?

一般都是通過long_query_time選項來設定這個時間值,時間以秒為單位,可以精確到微秒。如果查詢時間超過了這個時間值(預設為10秒),這個查詢語句將被記錄到慢查詢日誌中。

檢視伺服器預設時間值

mysql> show global variables like 『long%』;

查詢log:

或者在資料庫中直接定義開啟:

mysql> set session long_query_time=0.01;

檢視時間是否更改:

mysql> show variables like 『long%』;

檢視慢查詢日誌開啟狀態:

mysql> show global variables like 『%slow%』;

事務日誌:

事務日誌(innodb特有的日誌)可以幫助提高事務的效率。使用事務日誌,儲存引擎在修改表的資料時只需要修改其記憶體拷貝,再把改修改行為記錄到持久在硬碟上的事務日誌中,而不用每次都將修改的資料本身持久到磁碟。事務日誌採用追加的方式,因此寫日誌的操作是磁碟上一小塊區域內的順序i/o,而不像隨機i/o需要在磁碟的多個地方移動磁頭,所以採用事務日誌的方式相對來說要快得多。事務日誌持久以後,記憶體中被修改的資料在後台可以慢慢的刷回到磁碟。目前大多數的儲存引擎都是這樣實現的,我們通常稱之為預寫式日誌,修改資料需要寫兩次磁碟。

如果資料的修改已經記錄到事務日誌並持久化,但資料本身還沒有寫回磁碟,此時系統崩潰,儲存引擎在重啟時能夠自動恢復這部分修改的資料。具有的恢復方式則視儲存引擎而定。

小結:mysql資料庫各種日誌必須熟悉,在以後的工作中非常重要。

mysql日誌型別

日誌型別 mysql日誌主要包含 錯誤日誌 查詢日誌 慢查詢日誌 事物日誌 二進位制日誌 錯誤日誌 在mysql資料庫中,錯誤日誌功能是預設開啟的。並且,錯誤日誌無法被禁止。預設情況下,錯誤日誌儲存在mysql資料庫的資料檔案中。錯誤日誌檔案通常的名稱為hostname.err。其中,hostnam...

mysql 日誌型別

mysql有四種日誌 所有日誌 general log 慢查詢日誌 slow log 二進位制日誌 binary log 錯誤日誌 error log windows下在my.ini裡配置,linux下在my.cnf裡配置。general log記錄使用者所有的操作。general log on g...

4種常見的MySQL日誌型別

1 錯誤日誌 記錄啟動 執行或停止mysqld時出現的問題 log error d mysql log err.txt 2 查詢日誌 記錄建立的客戶端連線和執行的所有語句 包括錯誤的 log d mysql log.txt 3 二進位制日誌 記錄所有更改資料的語句 還用於主從複製 log bin d...