本文目錄一覽:
如何開啟mysql的日誌或如何查看 mysql的日誌文件
mysql有以下幾種日誌:
錯誤日誌: -log-err
查詢日誌: -log
慢查詢日誌: -log-slow-queries
更新日誌: -log-update
二進制日誌: -log-bin
在mysql的安裝目錄下,打開my.ini,在後面加上上面的參數,保存後重啟mysql服務就行了。
例如:#Enter a name for the binary log. Otherwise a default name will be used.
#log-bin=#Enter a name for the query log file. Otherwise a default name will be used.
#log=#Enter a name for the error log file. Otherwise a default name will be used.
log-error=#Enter a name for the update log file. Otherwise a default name will be used.
#log-update=
上面只開啟了錯誤日誌,要開其他的日誌就把前面的“#”去掉
查看命令:①show variables like ‘log_%’;查看所有的log命令
②show variables like ‘log_bin’;查看具體的log命令
怎麼查看mysql日誌
通用查詢日誌可以存放到一個文本文件或者表中,所有連接和語句被記錄到該日誌文件或表,缺省未開啟該日誌。
通過–log[=file_name]或-l [file_name]選項啟動它。如果沒有給定file_name的值, 默認名是host_name.log。
mysqld按照它接收的順序記錄語句到查詢日誌。這可能與執行的順序不同。
不同於更新日誌和二進制日誌,它們在查詢執行後,但是任何一個鎖釋放之前記錄日誌。
查詢日誌包含所有語句,而二進制日誌不包含只查詢數據的語句。
服務器重新啟動和日誌刷新不會產生新的一般查詢日誌文件。
MySQL8.0錯誤日誌Error log
錯誤日誌包含mysqld啟動和關閉的時間信息,還包含診斷消息,如服務器啟動和關閉期間以及服務器運行時出現的錯誤、警告和其他需要注意的信息。例如:如果mysqld檢測到某個表需要檢查或修復,會寫入錯誤日誌。
根據錯誤日誌配置,錯誤消息還可能填充performance_schema.error_log表,以便為日誌提供SQL接口,使錯誤日誌能夠查詢。
如果用mysqld_safe啟動mysqld,mysqld_safe會將消息寫入錯誤日誌。例如,當mysqld_safe注意到mysqld異常退出時,它會重新啟動mysqld,並將mysqld重新啟動的消息寫入錯誤日誌。
在MySQL 8.0中,錯誤日誌使用MySQL組件(component) 架構。錯誤日誌系統由執行日誌事件過濾和寫出組件以及系統變量組成,該系統變量配置啟用哪些組件來實現所需的日誌記錄。
基於組件的錯誤日誌記錄提供了以下功能:
log_error_services系統變量控制為錯誤記錄啟用哪些日誌組件。多個組件用逗號或分號分隔,日誌系統按照此順序依次執行。組件分過濾filter和寫出sink兩類。filter類組件過濾錯誤日誌信息,sink類組件將錯誤日誌寫到不同的位置。
過濾器組件 過濾依據 相關係統變量 log_filter_internal 錯誤事件的優先級及錯誤代碼 log_error_verbosity
log_error_suppression_list log_filter_dragnet 用戶定義的規則 dragnet.log_error_filter_rules
系統變量log_error指定錯誤日誌的缺省目的地,日誌組件根據該系統變量決定自己的日誌輸出目的地。
sink類日誌組件 log_error值 目的地 log_sink_internal(缺省) file_name file_name log_sink_internal stderr 控制台 log_sink_json stderr 控制台 log_sink_json file_name file_name .00.json
file_name .01.json log_sink_test stderr 控制台 log_sink_test file_name file_name log_sink_syseventlog stderr 系統日誌 log_sink_syseventlog file_name 系統日誌
安裝sink組件log_sink_json,修改log_error_services參數增加log_sink_json寫出組件。
目標:配置log_sink_internal組件只記錄ERROR類信息。
方法:修改啟動參數文件,調整log_error_verbosity參數。
目標:配置log_sink_internal記錄ERROR, WARNING, INFORMATION類錯誤,將 WARNING, INFORMATION中錯誤號MY-010001,MY-10002過濾掉。
方法:修改啟動參數文件,調整log_error_verbosity和log_error_suppression_list參數
目標:配置過濾器,按照用戶定義的規則過濾錯誤日誌信息。
方法:使用log_filter_dragnet,配置變量dragnet.log_error_filter_rules添加過濾規則。
目標:將MySQL的錯誤日誌寫入Linux系統日誌。
方法:使用log_sink_syseventlog組件,將錯誤日誌寫入Linux系統日誌。
目標:保留原錯誤日誌,讓MySQL開始一個新的錯誤日誌。
方法:使用FLUSH ERROR LOGS 或 FLUSH LOGS 或 mysqladmin flush-logs都可以關閉錯誤日誌,然後重新創建錯誤日誌,在此之前應該手工將錯誤日誌改名或備份。
MySQL三種重要日誌
日誌是MySQL的重要組成部分,其中對於開發而言不得不關注三種重要的日誌,分別是二進制日誌(bin log)、事務日誌(redo log、undo log)。接下來詳細介紹這三種日誌。
binlog叫做二進制日誌,主要是用於記錄MySQL表的邏輯變化過程。在實際應用過程中,通常被用於主從複製和數據恢復。
事務執行過程中,會先把日誌寫到binlog cache,事務提交的時候,再把binlog cache寫到binlog文件中。
事務提交後的寫入只是寫入到文件系統的page cache,並沒有把數據持久化到磁盤。持久化磁盤由操作系統決定調用fsync。
MySQL提供了配置決定fsync的時機,當sync_binlog=0的時候,每次提交事務只寫入page cache,不執行fsync。當sync_binlog=1的時候,表示每次提交事務都會執行fsync。當sync_binlog = N的時候,每次提交事務都寫入page cache,累計多個事務才進行fsync。
顯然,當sync_binlog = 1的時候,binlog日誌不會丟失。當sync_binlog = N的時候,如果發生異常重啟,會丟失N個事務的binlog日誌。
STATEMENT
記錄數據操作的原始SQL,可能引發主庫備庫因索引選擇不一致,導致數據執行結果不一致。
ROW
ROW基於行複製,只記錄哪條數據被修改.缺點:占空間。比如DELETE 語句,對於STATEMENT只佔用1條SQL。而ROW格式則需要把所有記錄的數據記錄下來。
MIXED
對於可能引發主備不一致的命令使用ROW格式,否則使用STATEMTNT
對於每一次更新操作,MySQL都需要寫入磁盤,然後需要找到對應那條記錄並更新。IO成本較高和查找成本都很高。為了提高性能,MySQL會將更新操作寫入redo log,並更新內存。INNODB引擎會在適當的時候將操作記錄更新到磁盤。
[圖片上傳失敗…(image-c6a1f2-1627716309698)]
undo log主要是記錄了數據的邏輯變化,比如對應一條insear語句,undo log會記錄一條delete語方便回退到更新前的值。
時刻A發生故障的話,由於binlog未寫入,redo log回滾數據,兩個日誌數據是一致的。
時刻B發生故障,則需要判斷binlog是否完整來決定如何恢復。
redo log和bin log的區別?
為什麼redo log crash-safe,而bin log不可以?
mysql 日誌
在mysql數據庫中,錯誤日誌功能是默認開啟的。並且,錯誤日誌無法被禁止。默認情況下,錯誤日誌存儲在mysql數據庫的數據文件中。錯誤日誌文件通常的名稱為hostname.err。其中,hostname表示服務器主機名。
錯誤日誌信息可以自己進行配置的,錯誤日誌所記錄的信息是可以通過log-error和log-warnings來定義的,其中log-err是定義是否啟用錯誤日誌的功能和錯誤日誌的存儲位置,log-warnings是定義是否將警告信息也定義至錯誤日誌中。默認情況下錯誤日誌大概記錄以下幾個方面的信息:服務器啟動和關閉過程中的信息(未必是錯誤信息,如mysql如何啟動InnoDB的表空間文件的、如何初始化自己的存儲引擎的等等)、服務器運行過程中的錯誤信息、事件調度器運行一個事件時產生的信息、在從服務器上啟動服務器進程時產生的信息。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/248915.html