MySQL 8.0.17 “Too Many Connections” 排查指南

MySQL 8.0.17 “Too Many Connections” 排查與優化指南

在 MySQL 8.0.17 中,當出現“Too many connections”錯誤時,通常意味著數據庫連接數已達上限。這不僅會影響應用性能,還可能導致連接池(如 Druid)無法獲取新連接。以下是一個清晰簡潔的排查與優化指南,幫助你快速解決問題。

一、現象

MySQL 返回錯誤碼 1040,狀態碼 08004,提示“Too many connections”。Druid 連接池無法獲取連接。

java.sql.SQLNonTransientConnectionException: Data source rejected establishment of connection, message from server: "Too many connections"

二、快速確認

  1. 登錄 MySQL

    -- 當前允許的最大連接數
    SHOW VARIABLES LIKE 'max_connections';-- 當前已打開的連接數
    SHOW STATUS LIKE 'Threads_connected';-- 歷史峰值
    SHOW STATUS LIKE 'Max_used_connections';
    
  2. 查看當前連接明細

    SHOW PROCESSLIST;
    

三、臨時方法

  1. 臨時提高連接上限
    SET GLOBAL max_connections = 300;   -- 根據內存評估
    

四、服務器端配置

  1. 修改配置文件(my.cnf / my.ini)

    [mysqld]
    max_connections = 300          # 建議 300~500 起步
    wait_timeout    = 300          # 5 分鐘后回收空閑連接
    interactive_timeout = 300
    

    重啟 MySQL 使配置生效,或使用:

    SET PERSIST max_connections = 300;
    
  2. 啟用自適應參數(單機專用服務器推薦)

    [mysqld]
    innodb_dedicated_server = ON
    

五、應用側檢查

  1. 檢查連接池配置

    spring.datasource.druid.max-active=50
    spring.datasource.druid.initial-size=5
    spring.datasource.druid.min-idle=5
    spring.datasource.druid.max-wait=3000
    spring.datasource.druid.remove-abandoned=true
    spring.datasource.druid.remove-abandoned-timeout=60
    spring.datasource.druid.log-abandoned-connections=true
    
  2. 確保資源正確關閉
    在代碼中確保 ConnectionStatementResultSetfinally 塊中關閉,防止連接泄露。

六、業務側檢查

  1. 監控業務流量

    • 檢查業務高峰期的流量,確認是否有異常流量導致連接數激增。
    • 使用監控工具(如 Prometheus、Grafana)實時監控業務流量。
  2. 分析業務邏輯

    • 檢查業務代碼中是否有不必要的數據庫連接操作。
    • 優化業務邏輯,減少不必要的數據庫請求。

七、高并發優化

  1. 引入連接代理

    • 使用 ProxySQL、MySQL Router 或 ShardingSphere-Proxy 進行連接復用。
  2. 讀寫分離

    • 使用 InnoDB ReplicaSet 快速拉起只讀實例,分擔主庫壓力。
  3. 關閉死鎖檢測(極端寫場景)

    SET GLOBAL innodb_deadlock_detect = OFF;
    

八、一鍵檢查腳本(Linux)

mysql -uroot -p'密碼' -e "
SELECT @@max_connections AS max_conn,VARIABLE_VALUE   AS threads_conn
FROM performance_schema.global_status
WHERE VARIABLE_NAME='Threads_connected';
"

九、小結流程

發現 1040 → 查看 max_connections / Threads_connected → 臨時 SET GLOBAL → 配置 my.cnf → 重啟 → 檢查應用池設置 → 檢查業務邏輯 → 長期監控

十、總結

通過以上步驟,你可以快速定位并解決 MySQL 8.0.17 的“Too many connections”問題。關鍵步驟包括快速確認問題、臨時提高連接上限、持久化配置、檢查應用和業務邏輯,以及優化高并發場景。希望這份指南能幫助你高效解決問題。

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

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

相關文章

GEO優化服務:智能時代營銷新賽道的中國引領者——全球行業格局與發展趨勢觀察

隨著全球人工智能技術的迅猛發展,以GPT-5、Claude Opus以及我國的DeepSeek Divine、豆包等為代表的新一代生成式AI搜索引擎,正深刻改變著信息獲取與商業決策模式。用戶通過直接向AI提問獲取整合答案的行為日益普遍,傳統搜索引擎的流量入口地位…

全面解析主流AI模型:功能對比與應用推薦

全面解析主流AI模型:功能對比與應用推薦 在當前人工智能技術飛速發展的背景下,市面上涌現了多種具備不同能力的AI模型。本文將系統梳理主流模型的特性、對比其核心能力,并結合實際場景推薦高效、穩定的API服務(如https://api.aaa…

【Nacos知識】Nacos 作為注冊中心的客戶端配置詳解

Nacos 作為注冊中心的客戶端配置詳解Nacos 作為注冊中心的客戶端配置詳解一、核心配置項全景圖二、基礎連接配置1. 服務端地址配置2. 命名空間配置3. 服務分組配置三、服務注冊配置1. 服務元數據配置2. 網絡位置配置3. 集群與權重配置四、健康檢查配置1. 心跳參數配置2. 健康檢…

TypeReference 泛型的使用場景及具體使用流程

簡介 在 Java 中,泛型類型在運行時會被擦除。這意味著當我們使用泛型時,運行時無法直接獲取到泛型的具體類型信息。例如,我們無法直接通過 Class 對象來獲取一個泛型類型的類型參數。這在某些情況下可能會導致問題,特別是在我們需…

商超場景徘徊識別誤報率↓79%!陌訊多模態時序融合算法落地優化

原創聲明本文為原創技術解析文章,核心技術參數與架構設計引用自 “陌訊技術白皮書(2024 版)”,所有技術描述均經過重寫轉換,無復制官網文案行為,嚴禁未經授權轉載。一、行業痛點:徘徊識別的場景…

KubeBlocks AI:AI時代的云原生數據庫運維探索

KubeBlocks AI:AI時代的云原生數據庫運維探索 REF Auto-detect-failure 架構Auto-bug-detect測試 引言 傳統的自動化運維診斷主要依賴基于規則的方法——無論是Ansible Playbooks的預定義腳本,還是Kubernetes Operator的固化邏輯,這些方法…

如何編譯botan加密庫?

Botan加密庫支持2.x版本和3.x版本,其中3.x版本需要支持C20。0、下載源碼git clone https://github.com/randombit/botan.gitcd botan切換分支到2.19.5版本git checkout 2.19.51、Windows編譯Botan加密庫1.1 配置生成MakefileRelease模式python configure.py --ccmsv…

Linux問答題:分析和存儲日志

目錄 1. RHEL 日志文件保存在哪個目錄中? 2.什么是 syslog 消息和非 syslog 消息? 3.哪兩個服務處理 RHEL 中的 syslog 消息? 4. 列舉常用的系統日志文件并說明其存儲的消息類型。 5. 簡單說下日志文件輪轉的作用 6.systemd-journald 服…

chapter05_從spring.xml讀取Bean

一、簡化Bean的注冊 如果每次注冊一個Bean,都要像上節一樣,手動寫PropertyValues相關的代碼,那太復雜了,我們希望讀取XML文件,自動注冊Bean,這樣對于使用者,甚至不知道有BeanDefinition的存在 二…

【數位DP】D. From 1 to Infinity

Problem - D - Codeforces 題目: 思路: 數位DP 數論 題目讓我們求這個無限序列 123456789101112.... 的前 k 個數的數位和 題目看起來很不好求,事實上確實是這樣的 我們可以先從簡單問題開始 問題①. 求 k 位置對應著第幾個數 那么顯然…

gitlab、jenkins等應用集成ldap

gitlab、jenkins等應用集成ldap 文檔 openldap安裝 -添加條目gitlab、jenkins等應用集成ldap gitlab集成ldap gitlab版本:gitlab-jh-17.7.0 ldap版本:openldap-2.6.10 修改/etc/gitlab/gitlab.rb文件,編輯相關信息 gitlab_rails[ldap_en…

Unity中國小游戲行業沙龍:抖音小游戲平臺分析與規劃

目錄 一、抖音小游戲市場全景分析 行業現狀與發展趨勢 行業發展關鍵議題 內容運營生態觀察 二、平臺技術架構與運營體系 用戶復訪與留存體系 技術支撐體系 三、平臺激勵與商業化政策 收益分成機制 資金服務升級 技術基礎建設 四、生態合作與發展規劃 開發者支持體系…

手機橫屏適配方案

CSS自動旋轉頁面實戰指南在移動端開發中,橫屏適配是一個常見但棘手的問題。本文將深入解析一套完整的CSS橫屏適配方案,讓你的網頁在手機旋轉時自動調整布局,提供無縫的用戶體驗。一、橫屏適配的重要性 隨著移動設備使用場景的多樣化&#xff…

藍橋杯算法之基礎知識(2)——Python賽道

1.循環里面套用遞歸,當遞歸執行return時,只會退出當前遞歸層2.不能一邊遍歷list 一邊pop解決辦法:倒序遍歷解決或者創建新的列表去存儲3.sqrt求出來的始終是小數形式,注意題目要求的結果有可能是整型你直接sqrt就提交,…

如何優雅解決 OpenCV 分段錯誤(Segfault):子進程隔離實戰

在分布式數據平臺(如 Databricks Spark)中跑視頻處理任務時,你是否遇到過這種惡心的報錯?Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.collectAndServe. : org.apache.spark.Spark…

Docker的六種網絡模式(詳解)

文章目錄1. bridge(默認)2. host3. none4. container5. overlay6. macvlan7. 總結對比Docker 六種網絡模式是容器網絡的基礎概念,不同模式決定容器與宿主機、外部網絡、其他容器之間的通信方式。 1. bridge(默認) Br…

微服務流量分發核心:Spring Cloud 負載均衡解析

目錄 理解負載均衡 負載均衡的實現方式 服務端負載均衡 客戶端負載均衡 Spring Cloud LoadBalancer快速上手 常見的負載均衡策略 自定義負載均衡策略 LoadBalancer 原理 理解負載均衡 在 Spring Cloud 微服務架構中,負載均衡(Load Balance&#…

鴻蒙異步處理從入門到實戰:Promise、async/await、并發池、超時重試全套攻略

摘要(介紹目前的背景和現狀) 在鴻蒙(HarmonyOS)里,網絡請求、文件操作、數據庫訪問這類 I/O 都是異步的。主流寫法跟前端類似:Promise、async/await、回調。想把 app 做得“流暢且不阻塞”,核心…

【html2img/pdf 純!純!python將html保存為圖片/pdf!!效果非常的棒!】

素材 a.png html card.html <!DOCTYPE html> <html lang"zh-CN"><head><meta charset"UTF-8"><title>固定樣式卡片</title><style>/* 基礎樣式和頁面居中 */body {font-family: "微軟雅黑", "P…

帶寬評估(三)lossbase_v2

一、優化方向 調整丟包恢復算法的參數:可以通過調整算法中的一些參數,如丟包恢復速率、丟包恢復閾值等,來優化算法的性能。 調整發送窗口大小:在固定丟包場景下,可以通過調整發送窗口大小來控制發送速率,從而減少丟包率。 a=fmtp:96 x-google-min-bitrate=300 二、Goo…