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

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


參數說明:
- log_bin_basename:當前數據庫服務器的binlog日志的基礎名稱(前綴),具體的binlog文件名需要再該basename的基礎上加上編號(編號從000001開始)。
- log_bin_index:binlog的索引文件,里面記錄了當前服務器關聯(lián)的binlog文件有哪些。
1.2.2格式
MySQL 服務器中提供了多種格式來記錄二進制日志,具體格式及特點如下:

show variables like '%binlog_format%'; 1

如果我們需要配置二進制日志的格式,只需要在 /etc/my.cnf 中配置 binlog_format 參數即可
1.2.3查看
由于日志是以二進制方式存儲的,不能直接讀取,需要通過二進制日志查詢工具 mysqlbinlog 來查看,具體語法:
mysqlbinlog [ 參數選項 ] logfilename 參數選項: -d 指定數據庫名稱,只列出指定的數據庫相關操作。 -o 忽略掉日志中的前n行命令。 -v 將行事件(數據變更)重構為SQL語句 -vv 將行事件(數據變更)重構為SQL語句,并輸出注釋信息
1.2.4刪除
對于比較繁忙的業(yè)務系統(tǒng),每天生成的 binlog 數據巨大,如果長時間不清除,將會占用大量磁盤空間??梢酝ㄟ^以下幾種方式清理日志:

也可以在mysql的配置文件中配置二進制日志的過期時間,設置了之后,二進制日志過期會自動刪除
show variables like '%binlog_expire_logs_seconds%';
1.3查詢日志
查詢日志中記錄了客戶端的所有操作語句,而二進制日志不包含查詢數據的 SQL 語句。默認情況下,查詢日志是未開啟的

如果需要開啟查詢日志,可以修改MySQL的配置文件 /etc/my.cnf 文件,添加如下內容:
#該選項用來開啟查詢日志 , 可選值 : 0 或者 1 ; 0 代表關閉, 1 代表開啟 general_log=1 #設置日志的文件名 , 如果沒有指定, 默認的文件名為 host_name.log general_log_file=mysql_query.log
開啟了查詢日志之后,在 MySQL 的數據存放目錄,也就是 /var/lib/mysql/ 目錄下就會出現(xiàn)mysql_query.log 文件。之后所有的客戶端的增刪改查操作都會記錄在該日志文件之中,長時間運行后,該日志文件將會非常大
1.4慢查詢日志
慢查詢日志記錄了所有執(zhí)行時間超過參數 long_query_time 設置值并且掃描記錄數不小于min_examined_row_limit 的所有的 SQL 語句的日志,默認未開啟。 long_query_time 默認為10 秒,最小為 0 , 精度可以到微秒。
如果需要開啟慢查詢日志,需要在 MySQL 的配置文件 /etc/my.cnf 中配置如下參數:
#慢查詢日志 slow_query_log=1 #執(zhí)行時間參數 long_query_time=2
默認情況下,不會記錄管理語句,也不會記錄不使用索引進行查找的查詢??梢允褂胠og_slow_admin_statements 和 更改此行為 log_queries_not_using_indexes ,如下所述
#記錄執(zhí)行較慢的管理語句 log_slow_admin_statements =1 #記錄執(zhí)行較慢的未使用索引的語句 log_queries_not_using_indexes = 1
上述所有的參數配置完成之后,都需要重新啟動 MySQL 服務器才可以生效。
到此這篇關于MySQL查看日志的實現(xiàn)的文章就介紹到這了,更多相關MySQL查看日志內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
全面分析MySQL?ERROR?1045出現(xiàn)的原因及解決
這篇文章主要介紹了全面分析MySQL?ERROR?1045出現(xiàn)的原因及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07
MySQL出現(xiàn)"Lock?wait?timeout?exceeded"錯誤的原因是什么詳解
這篇文章主要給大家介紹了關于MySQL出現(xiàn)"Lock?wait?timeout?exceeded"錯誤的原因是什么的相關資料,工作中同事遇到此異常,查找解決問題時,收集整理形成此篇文章,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2023-05-05

