MySQL體系架構解析(五):讀懂MySQL日志文件是優化與故障排查的關鍵

MySQL文件

日志文件

在服務器運行過程中,會產生各種各樣的日志,比如常規的查詢日志,錯誤日志、二進制日志、 redo 日志和 Undo 日志等,日志文件記錄了影響 MySQL 數據庫的各種類型活動。

常見的日志文件有:錯誤日志(error log)、慢查詢日志(slow query log)、查詢日志(query log)、二進制文件(bin log)。

錯誤日志

錯誤日志文件對 MySQL 的啟動、運行、關閉過程進行了記錄。遇到問題時,應該首先查看該文件以便定位問題。該文件不僅記錄了所有的錯誤信息,也記錄了一些警告信息或正確信息。

用戶可以通過下面命令來查看錯誤日志文件的位置

show variables liek 'log_error' \G;

在這里插入圖片描述
當 MySQL 不能正常啟動時,第一個必須查找的文件應該就是錯誤日志文件,該文件記錄了錯誤信息。

慢查詢日志

慢查詢日志可以幫助定位可能存在問題的 SQL 語句,從而進行 SQL 語句層面的優化。
我們已經知道了慢查詢日志可以幫我們定位可能存在問題的SQL語句,從而進行SQL語句層面的優化。但是默認值是關閉的,需要我們手動開啟。

show variables like 'slow_query_log';

在這里插入圖片描述

-- 開啟慢日志查看 0關閉 1開啟
set global slow_query_log = 1;

慢是廣義的概念,到底多慢算慢呢?MySQL中設定了一個閾值,將運行時間超過改值的所有SQL語句都記錄到慢查詢日志中。long_query_time 參數的值就是這個閾值。默認是10,代表是10秒。

show variables like 'long_query_time';

在這里插入圖片描述
當然也可以設置

set global long_query_time = 0;

默認10秒,這里為了演示方便設置為0。
同時對于運行的SQL語句沒有使用索引,MySQL 數據庫也可以將這條SQL語句記錄到慢查詢日志文件。

-- 未使用索引是否記錄慢查詢日志參數 0關閉(默認) 1開啟
show variables like '%log_queries_not_using_indexes%';

在這里插入圖片描述

記錄的慢查詢日志在哪里看呢?這里還有一個參數控制。

show variables like '%slow_query_log_file%';

windows
在這里插入圖片描述
linux
在這里插入圖片描述

查詢日志

查詢當前的通用日志文件是否開啟

show variables like '%general_log%';

在這里插入圖片描述

-- 開啟通用日志查詢
set global general_log = on;
-- 關閉通用日志查詢
set global general_log = off;

在這里插入圖片描述
查詢日志記錄了所有對MySQL數據庫請求的信息,無論這些請求是否得到了正確的執行。
默認文件名:hostName.log,比如centosvm.log
在這里插入圖片描述

二進制日志(binlog)

二進制日志記錄了所有的 DDL 和 DML 語句(除了數據查詢語句select),以事件形式記錄,還包含語句所執行的消耗時間,MySQL 的二進制日志是事務安全型的。它有以下幾種作用。

  • 恢復(recovery):某些數據的恢復需要二進制日志,例如,在一個數據庫全備文件恢復后,用戶可以通過二進制文件進行point-in-time的恢復
  • 復制(replication):其原理與恢復類似,通過復制和執行二進制日志使一臺遠程的 MySQL 數據庫(一般稱為slave或standy)與一臺MySQL數據庫(一般稱為master或primary)進行實時同步
  • 審計(audit):用戶可以通過二進制日志中的信息來進行審計,判斷是否有對數據庫進行注入的攻擊

log-bin 參數用來控制是否開啟二進制日志,默認為關閉。如果想要開啟二進制日志功能,可以在MySQL的配置文件中指定如下格式
“name”為二進制日志文件的名稱
如果不提供name,那么數據庫會使用默認的日志文件名(文件名為主機名,后綴名為二進制日志的序列號),且文件保存在數據庫所在的目錄(datadir下)
啟用/設置二進制日志文件(name可省略)
log-bin=name;
配置以后,就會在數據目錄下產生類似于:
在這里插入圖片描述
bin_log.00001即為二進制日志文件;bin_log.index為二進制的索引文件,用來存儲過往產生的二進制日志序號,通常情況下,不建議手動修改這個文件。

二進制日志文件在默認情況下并沒有啟動,需要手動指定參數來啟動。開啟這個選項會對MySQL的性能造成影響,但是性能損失十分有限。根據MySQL官方手冊中的測試說明,開啟二進制日志會使性能下降1%。

show variables like 'log_bin';

在這里插入圖片描述
mysql安裝目錄下修改my.cnf

log_bin=mysql-bin
binlog-format=ROW
server-id=1
expire_logs_days =30

在這里插入圖片描述
在這里插入圖片描述

其他的數據文件

除了我們上邊說的這些用戶自己存儲的數據以外,數據文件下還包括為了更好運行程序的一些額外文件,當然這些文件不一定會放在數據目錄下,而且可以在配置文件或者啟動時另外指定存放目錄。主要包括以下這幾種類型的文件。

  • 服務器進程文件
    我們知道每運行一個MySQL服務器程序,都意味著啟動一個進程。MySQL服務器會把自己的進程ID寫入到一個pid文件中。
  • socket文件
    當用UNIX域套接字方式進行連接時需要的文件。

在這里插入圖片描述

  • 默認/自動生成的SSL和RSA證書和密鑰文件
    在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/84510.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/84510.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/84510.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

湖南省網絡建設與運維賽項競賽規程及樣題

湖南省職業院校技能競賽樣題 賽題說明 一、競賽內容 “網絡建設與運維”競賽共分三個部分,其中: 第一部分:職業規范與素養 ( 5 分) 第二部分:網絡搭建及安全部署項目 ( 50 分&#xff09…

華為云Flexus+DeepSeek征文 | 基于華為云ModelArts Studio搭建AnythingLLM聊天助手

華為云FlexusDeepSeek征文 | 基于華為云ModelArts Studio搭建AnythingLLM聊天助手 引言一、ModelArts Studio平臺介紹華為云ModelArts Studio簡介ModelArts Studio主要特點 二、AnythingLLM介紹AnythingLLM 簡介AnythingLLM主要特點AnythingLLM地址 三、安裝AnythingLLM應用下載…

板凳-------Mysql cookbook學習 (十--5)

6.11 計算年齡 2025年6月11日星期三 --創建表、初始化數據 drop table if exists sibling; create table sibling (name char(20),birth date );insert into sibling (name,birth) values(Gretchen,1942-04-14); insert into sibling (name,birth) values(Wilbur,1946-11-28)…

SAP RESTFUL接口方式發布SICF實現全路徑

其他相關資料帖可參考: https://blog.csdn.net/woniu_maggie/article/details/146210752 https://blog.csdn.net/SAPmatinal/article/details/134349125 https://blog.csdn.net/weixin_44382089/article/details/128283417 【業務場景】 外部系統不想通過RFC (需…

在windows中安裝或卸載nginx

首先在nginx的安裝目錄下cmd查看nginx的版本: 在看windows的服務中是否nginx注冊為服務了 如果注冊了服務就先將服務卸載了 在nginx的安裝目錄cmd執行命令 NginxService.exe uninstall “NginxService”是對應的注冊的服務名稱 關閉所有的相關nginx的服務這個也…

FaceFusion 技術深度剖析:核心算法與實現機制揭秘

在 AI 換臉技術蓬勃發展的浪潮中,FaceFusion 憑借其出色的換臉效果和便捷的操作,成為眾多用戶的首選工具。從短視頻平臺上的創意惡搞視頻,到影視制作中的特效合成,FaceFusion 都展現出強大的實用性。而這一切的背后,是…

2. Web網絡基礎 - 協議端口

深入解析協議端口與netstat命令:網絡工程師的實戰指南 在網絡通信中,協議端口是服務訪問的門戶。本文將全面解析端口概念,并通過netstat命令實戰演示如何監控網絡連接狀態。 一、協議端口核心知識解析 1. 端口號的本質與分類 端口范圍類型說…

嵌入式學習筆記 - freeRTOS vTaskPlaceOnEventList()函數解析

vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToSend ), xTicksToWait ); 函數第一個參數為消息隊列等待插入鏈表, void vTaskPlaceOnEventList( List_t * const pxEventList, const TickType_t xTicksToWait ) { configASSERT( pxEventList ); /…

Ubuntu 配置使用 zsh + 插件配置 + oh-my-zsh 美化過程

Ubuntu 配置使用 zsh 插件配置 oh-my-zsh 美化過程 引言zsh 安裝及基礎配置oh-my-zsh 安裝及美化配置oh-my-zsh 安裝主題美化配置主題自定義主題 插件安裝及配置官方插件查看及啟用插件安裝 主題文件備份.zshrcre5et_self.zsh-theme 同步發布在個人筆記Ubuntu 配置使用 zsh …

Xilinx FPGA 重構Multiboot ICAPE2和ICAPE3使用

一、FPGA Multiboot 本文主要介紹基于IPROG命令的FPGA多版本重構,用ICAP原語實現在線多版本切換。需要了解MultiBoot Fallback點擊鏈接。 如下圖所示,ICAP原語可實現flash中n1各版本的動態切換,在工作過程中,可以通過IPROG命令切…

springMVC-11 中文亂碼處理

前言 本文介紹了springMVC中文亂碼的解決方案,同時也貼出了本人遇到過的其他亂碼情況,可以根據自身情況選擇合適的解決方案。 其他-jdbc、前端、后端、jsp亂碼的解決 Tomcat導致的亂碼解決 自定義中文亂碼過濾器 老方法,通過javaW…

mysql-innoDB存儲引擎事務的原理

InnoDB 存儲引擎支持 ACID 事務,其事務機制是通過 Redo Log(重做日志)、Undo Log(回滾日志) 和 事務日志系統 來實現的。下面詳細解析 InnoDB 事務的工作原理。 1.事務的基本特性(ACID) 特性描…

在GIS 工作流中實現數據處理

通過將 ArcPy 應用于實際的 GIS 工作流,我們可以高效地完成數據處理任務,節省大量時間和精力。接下來,本文將結合具體案例,詳細介紹如何運用 ArcPy 實現 GIS 數據處理的全流程。 數據讀取與合并 假設我們有多個 shapefile 文件&a…

第十四屆藍橋杯_省賽B組(C).冶煉金屬

題目如下: 拿到題我們來看一下,題目的意思,就是求出N個記錄中的最大最小值,言外之意就是,如果超過了這個最大值不行,如果小于這個最小值也不行,所以我們得出,這道題是一個二分答案的題目&#x…

??Android 如何查看CPU架構?2025年主流架構有哪些??

在開發安卓應用或選購手機時,了解設備的CPU架構至關重要。不同的架構影響性能、兼容性和能效比。那么,??如何查看安卓設備的CPU架構?2025年主流架構有哪些?不同架構之間有什么區別??? 本文將為你詳細解答。 ??1.…

飛算 JavaAI 2.0.0:開啟老項目迭代維護新時代

在軟件開發領域,老項目的迭代與維護一直是開發團隊面臨的難題。代碼邏輯混亂、技術棧陳舊、開發效率低下等問題,讓老項目改造猶如一場 “噩夢”。而飛算 JavaAI 2.0.0 版本的正式上線,通過三大核心能力升級,為老項目開發帶來了全新…

Linux初步介紹

Linux是一種開源的類Unix操作系統內核,廣泛應用于服務器、桌面、嵌入式設備等各種計算平臺。它由Linus Torvalds于1991年首次開發,因其穩定性、安全性和靈活性,被全球開發者和企業廣泛采用。 特點: 開放性(開源&#…

OneNet + openssl + MQTT

1.OneNet 使用的教程 1.在網絡上搜索onenet,注冊并且登錄賬號。 2.產品服務-----物聯網服務平臺立即體驗 3.在底下找到立即體驗進去 4.產品開發------創建產品 5.關鍵是選擇MQTT,其他的內容自己填寫 6.這里產品以及開發完成,接下來就是添加設…

行為設計模式之Memento(備忘錄)

行為設計模式之Memento(備忘錄) 前言: 備忘錄設計模式,有點像vmware快照可以回滾,idea的提交記錄同樣可以混滾,流程引擎中流程可以撤銷到或者回滾到某個指定的狀態。 1)意圖 在不破壞封裝性的…

動畫直播如何顛覆傳統?解析足球籃球賽事的數據可視化革命

在5G和AI技術快速發展的今天,體育賽事直播正在經歷一場深刻的變革。傳統視頻直播雖然能提供真實的比賽畫面,但在戰術可視化、數據深度和交互體驗方面存在明顯短板。而基于實時數據驅動的動畫直播技術,正通過創新的方式彌補這些不足&#xff0…