2020久久超碰欧美精品最新亚洲欧美日韩久久精品,国产福利电影一区二区三区,亚洲欧美日韩一区在线观看,亚洲国产欧美日韩欧美特级,亚洲欧美日韩成人一区久久,欧美日韩精品一区二区三区不卡,国产欧美日韩va另类影音先锋,亚洲欧美日韩久久精品,亚洲欧美日韩国产成人精品影院,亚洲国产欧美日韩精品一区二区三区,欧美日韩国产成人高清视频,日韩久久精品国产免费观看频道,久久人人爽人人爽从片av高清,国产精品综合一区二区

首頁技術文章正文

MySQL中怎樣查看錯誤日志和二進制日志?

更新時間:2022-10-07 來源:黑馬程序員 瀏覽量:

1.錯誤日志

錯誤日志是 MySQL 中最重要的日志之一,它記錄了當mysqld啟動和停止時,以及服務器在運行過程中發生任何嚴重錯誤時的相關信息。當數據庫出現任何故障導致無法正常使用時,建議首先查看此日志。該日志是默認開啟的,默認存放目錄 /var/log/,默認的日志文件名為 mysqld.log 。查看日志位置:

錯誤日志的查看位置

2.二進制日志

介紹二進制日志(BINLOG)記錄了所有的 DDL(數據定義語言)語句和 DML(數據操縱語言)語句,但不包括數據查詢(SELECT、SHOW)語句。作用:①. 災難時的數據恢復;②. MySQL的主從復制。在MySQL8版本中,默認二進制日志是開啟著的,涉及到的參數如下:

 show variables like '%log_bin%';

二進制日志

參數說明:

log_bin_basename:當前數據庫服務器的binlog日志的基礎名稱(前綴),具體的binlog文件名需要再該basename的基礎上加上編號(編號從000001開始)。

log_bin_index:binlog的索引文件,里面記錄了當前服務器關聯的binlog文件有哪些。

MySQL服務器中提供了多種格式來記錄二進制日志,具體格式及特點如下:

1665129140443_34.png

 show variables like '%binlog_format%';

1665129209682_圖片4.png

如果我們需要配置二進制日志的格式,只需要在/etc/my.cnf 中配置binlog_format 參數即可。

1)查看

由于日志是以二進制方式存儲的,不能直接讀取,需要通過二進制日志查詢工具mysqlbinlog 來查看,具體語法:

mysqlbinlog [ 參數選項 ] logfilename
參數選項:
    -d 指定數據庫名稱,只列出指定的數據庫相關操作。
    -o 忽略掉日志中的前n行命令。
    -v 將行事件(數據變更)重構為SQL語句
    -vv 將行事件(數據變更)重構為SQL語句,并輸出注釋信息

2)刪除

對于比較繁忙的業務系統,每天生成的binlog數據巨大,如果長時間不清除,將會占用大量磁盤空間。可以通過以下幾種方式清理日志:

清理日志

也可以在mysql的配置文件中配置二進制日志的過期時間,設置了之后,二進制日志過期會自動刪除。

 show variables like '%binlog_expire_logs_seconds%';

3)查詢日志

查詢日志中記錄了客戶端的所有操作語句,而二進制日志不包含查詢數據的SQL語句。默認情況下,查詢日志是未開啟的。 

1665129755174_圖片5.png

如果需要開啟查詢日志,可以修改MySQL的配置文件 /etc/my.cnf 文件,添加如下內容:

#該選項用來開啟查詢日志 , 可選值 : 0 或者 1 ; 0 代表關閉, 1 代表開啟
general_log=1
#設置日志的文件名 , 如果沒有指定, 默認的文件名為 host_name.log
general_log_file=mysql_query.log

開啟了查詢日志之后,在MySQL的數據存放目錄,也就是 /var/lib/mysql/ 目錄下就會出現 mysql_query.log 文件。之后所有的客戶端的增刪改查操作都會記錄在該日志文件之中,長時間運行后,該日志文件將會非常大。

4)慢查詢日志

慢查詢日志記錄了所有執行時間超過參數 long_query_time 設置值并且掃描記錄數不小于 min_examined_row_limit 的所有的SQL語句的日志,默認未開啟。long_query_time 默認為 10 秒,最小為 0, 精度可以到微秒。如果需要開啟慢查詢日志,需要在MySQL的配置文件 /etc/my.cnf 中配置如下參數:

 #慢查詢日志
 slow_query_log=1
 #執行時間參數
 long_query_time=2

默認情況下,不會記錄管理語句,也不會記錄不使用索引進行查找的查詢。可以使用log_slow_admin_statements和 更改此行為 log_queries_not_using_indexes,如下所述。

#記錄執行較慢的管理語句
log_slow_admin_statements =1
#記錄執行較慢的未使用索引的語句
log_queries_not_using_indexes = 1

注:上述所有的參數配置完成之后,都需要重新啟動MySQL服務器才可以生效。






分享到:
在線咨詢 我要報名
和我們在線交談!