???????MySQL數據庫故障排查指南

一、連接類問題

1. 無法連接數據庫
  • 現象:應用或客戶端無法連接MySQL服務。

  • 排查步驟

    1. 檢查服務狀態

      bash

      復制

      下載

      systemctl status mysqld      # 檢查MySQL是否運行
      netstat -tuln | grep 3306    # 確認3306端口是否監聽
    2. 檢查網絡問題

      • 防火墻是否放行3306端口:

        bash

        復制

        下載

        iptables -L -n | grep 3306
      • 使用telnetnc測試網絡連通性:

        bash

        復制

        下載

        telnet <MySQL_IP> 3306
    3. 檢查用戶權限

      • 確認用戶是否有遠程訪問權限:

        sql

        復制

        下載

        SELECT Host, User FROM mysql.user;
        GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'password';
        FLUSH PRIVILEGES;
    4. 檢查配置文件

      • 查看my.cnf中是否綁定到127.0.0.1

        ini

        復制

        下載

        bind-address = 0.0.0.0    # 允許所有IP連接

二、性能類問題

1. 查詢緩慢
  • 排查步驟

    1. 開啟慢查詢日志

      sql

      復制

      下載

      SET GLOBAL slow_query_log = 'ON';
      SET GLOBAL long_query_time = 2;  -- 定義慢查詢閾值(秒)
    2. 分析慢查詢

      • 查看慢查詢日志文件路徑:

        sql

        復制

        下載

        SHOW VARIABLES LIKE 'slow_query_log_file';
      • 使用mysqldumpslow工具分析日志:

        bash

        復制

        下載

        mysqldumpslow -s t /var/log/mysql/slow.log
    3. 使用EXPLAIN分析SQL執行計劃

      sql

      復制

      下載

      EXPLAIN SELECT * FROM table WHERE condition;
    4. 檢查索引缺失

      • 查看表索引狀態:

        sql

        復制

        下載

        SHOW INDEX FROM table_name;
      • 使用OPTIMIZE TABLE優化表:

        sql

        復制

        下載

        OPTIMIZE TABLE table_name;
2. 鎖競爭或死鎖
  • 排查步驟

    1. 查看當前鎖狀態

      sql

      復制

      下載

      SHOW ENGINE INNODB STATUS;  -- 查看事務和鎖信息
      SHOW OPEN TABLES WHERE In_use > 0;
    2. 殺死阻塞進程

      sql

      復制

      下載

      SHOW PROCESSLIST;          -- 找到阻塞的進程ID
      KILL <process_id>;
    3. 設置鎖超時(避免長事務):

      sql

      復制

      下載

      SET GLOBAL innodb_lock_wait_timeout = 30;  -- 默認50秒

三、數據一致性問題

1. 表損壞或數據丟失
  • 排查步驟

    1. 檢查表狀態

      sql

      復制

      下載

      CHECK TABLE table_name;    -- 檢查表是否損壞
    2. 修復表

      sql

      復制

      下載

      REPAIR TABLE table_name;   -- 僅對MyISAM表有效
    3. 使用innodb_force_recovery(InnoDB引擎):

      • 修改my.cnf并重啟:

        ini

        復制

        下載

        innodb_force_recovery = 1  -- 從1到6逐步嘗試(6為最高修復級別)
2. 主從復制錯誤
  • 排查步驟

    1. 查看復制狀態

      sql

      復制

      下載

      SHOW SLAVE STATUS\G  -- 關注Slave_IO_Running和Slave_SQL_Running
    2. 跳過指定錯誤(謹慎操作):

      sql

      復制

      下載

      STOP SLAVE;
      SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;  -- 跳過1個錯誤
      START SLAVE;
    3. 重新同步數據

      • 使用mysqldump重新導出主庫數據并導入從庫。


四、日志與錯誤分析

1. 錯誤日志分析
  • 查看錯誤日志路徑

    sql

    復制

    下載

    SHOW VARIABLES LIKE 'log_error';
  • 常見錯誤碼

    • 1045:權限錯誤 → 檢查用戶密碼和主機白名單。

    • 2003:連接超時 → 檢查網絡和防火墻。

    • 1213:死鎖 → 優化事務邏輯。

2. 二進制日志(Binlog)恢復
  • 恢復誤刪數據

    bash

    復制

    下載

    mysqlbinlog --start-datetime="2023-10-01 00:00:00" /var/log/mysql/binlog.000001 | mysql -u root -p

五、資源瓶頸排查

1. CPU/內存過高
  • 排查步驟

    1. 查看系統資源

      bash

      復制

      下載

      top -c          # 查看進程CPU/內存占用
      vmstat 2 5      # 監控系統資源
    2. 優化MySQL配置

      • 調整innodb_buffer_pool_size(建議為物理內存的70%)。

      • 減少并發連接數(max_connections)。


六、備份與恢復

1. 定期備份
  • 物理備份

    bash

    復制

    下載

    innobackupex --user=root --password=xxx /backup/
  • 邏輯備份

    bash

    復制

    下載

    mysqldump -u root -p --all-databases > backup.sql
2. 恢復數據
  • 全量恢復

    bash

    復制

    下載

    mysql -u root -p < backup.sql

七、高級故障排查工具

  • Percona Toolkit:分析慢查詢、死鎖和索引問題。

  • pt-query-digest:分析慢查詢日志。

  • mytop:實時監控MySQL線程和查詢。


八、預防措施

  1. 監控告警:使用Prometheus + Grafana監控MySQL狀態。

  2. 定期優化:每周執行OPTIMIZE TABLEANALYZE TABLE

  3. 權限最小化:避免使用root賬號運行應用。

  4. 測試備份恢復流程:確保備份文件可恢復。


通過以上步驟,可系統化定位并解決MySQL的常見故障。對于復雜問題,建議結合日志、監控工具和數據庫快照進一步分析。

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

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

相關文章

Github 熱點項目 Cursor開源代替,AI代理+可視化編程!支持本地部署的隱私友好型開發神器。

Void編輯器今天必須擁有姓名&#xff01;作為總星數近1.5萬的頂流開源工具&#xff0c;它用三大絕活圈粉無數&#xff1a;① 隱私黨狂喜&#xff01;所有AI對話直連模型商&#xff0c;你的代碼數據絕不留在別人服務器&#xff1b;② 自帶時光機功能&#xff0c;AI修改代碼時自動…

Quorum協議原理與應用詳解

一、Quorum 協議核心原理 基本定義 Quorum 是一種基于 讀寫投票機制 的分布式一致性協議&#xff0c;通過權衡一致性&#xff08;C&#xff09;與可用性&#xff08;A&#xff09;實現數據冗余和最終一致性。其核心規則為&#xff1a; W&#xff08;寫成功副本數&#xff09; …

PyTorch_自動微分模塊

自動微分 (Autograd) 模塊對張量做了進一步的封裝&#xff0c;具有自動求導功能。自動微分模塊是構成神經網絡訓練的必要模塊&#xff0c;在神經網絡的反向傳播過程中&#xff0c;Autograd 模塊基于正向計算的結果對當前的參數進行微分計算&#xff0c;從而實現網絡權重參數的更…

34.筆記1

今天&#xff0c;我們回顧回顧曾經的知識。 1.二分 還記得當初的二分嗎&#xff1f; 1.一開始的二分 就像下面這個故事&#xff1a; 有一只老鼠&#xff0c;躲在10個大瓷瓶后面。你的任務就是抓住這只老鼠&#xff0c;但在抓的過程會導致你選擇的大瓷瓶成為分子碎片。 如…

云原生環境下服務治理體系的構建與落地實踐

??個人主頁??:慌ZHANG-CSDN博客 ????期待您的關注 ???? 一、引言:服務治理正在從“框架能力”向“平臺能力”演進 隨著微服務架構逐步成熟,越來越多的企業開始向云原生遷移,Kubernetes、Service Mesh、Serverless 等新興技術不斷推動系統的基礎設施演進。 與…

讀取傳感器發來的1Byte數據:分低位先行和高位先行的處理方法

目錄 一、寫在前面 二、偽代碼的邏輯實現 1、從高位到低位 2、從低位到高位 一、寫在前面 在接收數據之前我們需要事先知道數據的發送規則&#xff0c;是高位先行還是低位先行&#xff0c;并按照規則接收數據&#xff0c;否則收到的數據很可能是錯的 高位先行&#xff1a;…

C++ - 函數重載

概念 函數重載允許在同一作用域內定義多個同名函數&#xff0c;但這些函數的參數要滿足&#xff1a;參數類型、參數個數&#xff0c;參數順序不同&#xff08;滿足三個中的一個&#xff09;&#xff0c;才能使用函數重載 #include <iostream> using namespace std;// 1…

EEG設備的「減法哲學」:Mentalab Explore如何用8通道重構高質量腦電信號?

在腦電圖&#xff08;EEG&#xff09;研究領域&#xff0c;選擇適配的工具是推動研究進展的重要步驟。Mentalab Explore 以其便捷性和高效性&#xff0c;成為該領域的一項創新性解決方案。研究者僅用較少的 EEG 通道即可完成實驗&#xff0c;并且能夠確保數據的高質量。其搭載的…

Vue3 路由配置與跳轉傳參完整指南

目錄 一、路由配置 1. 基本路由配置 2. 動態路由配置 3. 可選參數配置 二、路由跳轉與傳參 1. 聲明式導航 (模板中) 2. 編程式導航 (JavaScript中) 三、參數接收 1. 接收動態路由參數 2. 接收查詢參數 3. 監聽參數變化 四、高級用法 1. 路由元信息 2. 路由守衛控…

Vibe Coding: 優點與缺點

如果你最近在開發圈子里,你很可能聽說過這個新趨勢"vibe coding"(氛圍編程)。 我只能說我對此感受復雜。以下是原因。 優勢 在構建新項目時,靠著氛圍編程達到成功感覺很自由!但對于遺留代碼來說情況就不同了,盡管也不是不可能。 實時反饋和快速迭代 Cursor(…

7:點云處理—眼在手外標定

1.制作模板 dev_update_off ()dev_set_color (green)dev_close_window ()WindowHeight:740WindowWidth :740dev_open_window(0, 0, 540, 540, black, WindowHandle)Instruction : [Rotate: Left button,Zoom: Shift left button,Move: Ctrl left button]read_object_mod…

AI賦能智能客服革新:R2AIN SUITE 如何破解醫療行業服務難題?

一、什么是智能客服&#xff1f; 智能客服是基于人工智能技術&#xff08;AI&#xff09;的客戶服務解決方案&#xff0c;通過自然語言處理&#xff08;NLP&#xff09;、機器學習、大模型等核心技術&#xff0c;實現多模態交互、自動化應答、知識庫管理、流程優化等功能。其核…

(undone) MIT6.S081 Lec17 VM for APP 學習筆記

url: https://mit-public-courses-cn-translatio.gitbook.io/mit6-s081/lec17-virtual-memory-for-applications-frans/17.1-ying-yong-cheng-xu-shi-yong-xu-ni-nei-cun-suo-xu-yao-de-te-xing 17.1 應用程序使用虛擬內存所需要的特性 今天的話題是用戶應用程序使用的虛擬內存…

使用 OpenSSL 吊銷 Kubernetes(k8s)的 kubeconfig 里的用戶證書

一.用 OpenSSL 依據已有的自簽名 CA 注銷簽發的證書的步驟 1. 準備工作 你得有自簽名 CA 的私鑰&#xff08;通常是 .key 文件&#xff09;、CA 證書&#xff08;通常是 .crt 文件&#xff09;以及證書吊銷列表&#xff08;CRL&#xff09;文件。若還沒有 CRL 文件&#xff0c…

循環卷積(Circular Convolutions)

最近看論文發現了一個叫循環卷積的東西&#xff0c;這里學習并記錄一下&#xff0c;方便以后查閱。 循環卷積&#xff08;Circular Convolutions&#xff09; 循環卷積&#xff08;Circular Convolutions&#xff09;1. 什么是循環卷積2. 數學定義關鍵點 3. 循環卷積與線性卷積…

【計算機視覺】Car-Plate-Detection-OpenCV-TesseractOCR:車牌檢測與識別

Car-Plate-Detection-OpenCV-TesseractOCR&#xff1a;車牌檢測與識別技術深度解析 在計算機視覺領域&#xff0c;車牌檢測與識別&#xff08;License Plate Detection and Recognition, LPDR&#xff09;是一個極具實用價值的研究方向&#xff0c;廣泛應用于智能交通系統、安…

MATLAB制作柱狀圖與條圖:數據可視化的基礎利器

一、什么是柱狀圖與條圖&#xff1f; 柱狀圖和條圖都是用來表示分類數據的常見圖表形式&#xff0c;它們的核心目的是通過矩形的長度來比較各類別的數值大小。條圖其實就是“橫著的柱狀圖”&#xff0c;它們的本質是一樣的&#xff1a;用矩形的長度表示數值大小&#xff0c;不同…

[計算機科學#13]:算法

【核知坊】&#xff1a;釋放青春想象&#xff0c;碼動全新視野。 我們希望使用精簡的信息傳達知識的骨架&#xff0c;啟發創造者開啟創造之路&#xff01;&#xff01;&#xff01; 內容摘要&#xff1a; 算法是解決問題的系統化步驟&#xff0c;不同的問題…

HTTP傳輸大文件的方法、連接管理以及重定向

目錄 1. HTTP傳輸大文件的方法 1.1. 數據壓縮 1.2. 分塊傳輸 1.3. 范圍請求 1.4. 多段數據 2. HTTP的連接管理 2.1. 短連接 2.2. 長連接 2.3. 隊頭阻塞 3. HTTP的重定向和跳轉 3.1. 重定向的過程 3.2. 重定向狀態碼 3.3. 重定向的應用場景 3.4. 重定向的相關問題…

PostgreSQL 18 Beta 1發布,有哪些功能亮點?

PostgreSQL 全球開發組于 2025 年 5 月 8 日發布了第一個 PostgreSQL 18 Beta 版本&#xff0c;現已開放下載。雖然細節可能會有所改變&#xff0c;但是該版本包含了 PostgreSQL 18 最終正式版中所有新功能的預覽。 以下是 PostgreSQL 18 引入的部分關鍵功能亮點。 性能優化 …