MySQL日誌相關

2021-08-07 10:49:07 字數 1502 閱讀 9570

對於mysql的日誌還沒有仔細研究過,目前只是使用了乙個通用日誌,所以在這裡先列舉mysql的主要日誌檔案,接下來有時間會去研究一下,畢竟很多時候,日誌可以更精確的定位問題,所以了解一下mysql的日誌系統還是很有必要的。

-- 檢視日誌是否啟用

show variables like

'%log%';

1、mysql日誌檔案系統的組成

a、錯誤日誌:記錄啟動、執行或停止mysqld時出現的問題。

b、通用日誌:記錄建立的客戶端連線和執行的語句。

c、更新日誌:記錄更改資料的語句。該日誌在mysql 5.1中已不再使用。

d、二進位制日誌:記錄所有更改資料的語句。還用於複製。

e、慢查詢日誌:記錄所有執行時間超過long_query_time秒的所有查詢或不使用索引的查詢。

f、innodb日誌:innodb redo log

預設情況下,所有日誌建立於mysqld資料目錄中。

可以通過重新整理日誌,來強制mysqld來關閉和重新開啟日誌檔案(或者在某些情況下切換到乙個新的日誌)。

當你執行乙個flush logs語句或執行mysqladmin flush-logs或mysqladmin refresh時,則日誌被老化。

對於存在mysql複製的情形下,從復**務器將維護更多日誌檔案,被稱為接替日誌。

2、通用查詢日誌

通用查詢日誌可以存放到乙個文字檔案或者表中,所有連線和語句被記錄到該日誌檔案或表,預設未開啟該日誌。

通過–log[=file_name]或-l [file_name]選項啟動它。如果沒有給定file_name的值, 預設名是host_name.log。

mysqld按照它接收的順序記錄語句到查詢日誌。這可能與執行的順序不同。

不同於更新日誌和二進位制日誌,它們在查詢執行後,但是任何乙個鎖釋放之前記錄日誌。

查詢日誌包含所有語句,而二進位制日誌不包含只查詢資料的語句。

伺服器重新啟動和日誌重新整理不會產生新的一般查詢日誌檔案。

3、通用查詢日誌的系統變數

log_output=[none|file|table|file,table] #通用查詢日誌輸出格式

general_log=[on|off] #是否啟用通用查詢日誌

general_log_file[=filename] #通用查詢日誌位置及名字

4、通用查詢日誌的備份

在linux或unix中,你可以通過下面的命令重新命名檔案

並建立乙個新檔案:

shell> mv hostname.log hostname-old.log

shell> mysqladmin flush-logs

shell> cp hostname-old.log to-backup-directory

shell> rm hostname-old.log

在windows中,伺服器開啟日誌檔案期間不能重新命名日誌檔案。必須先停止伺服器然後重新命名日誌檔案。然後重啟伺服器來建立新日誌檔案。

Mysql日誌相關

在 mysql 中也稱為通用日誌 general log 查詢日誌裡面記錄了資料庫執行的所有命令,不管語句是否正確,都會被記錄,原因如下 查詢日誌的開啟有助於幫助我們分析哪些語句執行密集,執行密集的 select 語句對應的資料是否能夠被快取,同時也可以幫助我們分析問題,但是在併發操作非常多的場景下...

MySQL 日誌相關

2.redo log 和 binlog 有什麼區別?3.什麼是 crash safe?4.什麼是髒頁和乾淨頁?5.什麼情況下會引發 mysql 刷髒頁 flush 的操作?6.mysql 刷髒頁的速度很慢可能是什麼原因?7.如何控制 mysql 只重新整理當前髒頁?8.mysql 的 wal 技術是...

MySQL相關日誌介紹

錯誤日誌 log error 查詢日誌 query log 二進位制日誌 binary log 2.相關日誌的作用 1 錯誤日誌 error log 記錄mysql服務程序mysql在啟動 關閉或者執行過程中遇到的錯誤訊息.是工作中排查錯誤的重要工具.2 查詢日誌 query log 1 普通查詢日...