MySQL连接超时需分层定位:先验网络连通性与端口开放,再调优服务端wait_timeout等参数,应用端须用连接池并校验连接有效性,最后排查慢查询与锁竞争。
MySQL连接超时不是单一原因导致的问题,而是数据库、网络、应用三端协同失配的结果。解决的关键在于分层定位:先确认是“连不上”,还是“连上了但执行慢/断开”,再针对性处理。
很多超时问题其实卡在第一步——根本没通到数据库。
默认 8 小时空闲断连对多数 Web 应用偏长,反而容易因中间网络波动引发意外中断。

服务端调参只是辅助,真正稳定靠应用层主动维护连接生命周期。
mysql.createPool、Java 的 HikariCP、Python 的 mysql-connector-python 连接池模式?autoReconnect=true&socketTimeout=30000;Node.js:connectionLimit: 10, acquireTimeout: 10000
表面是“连接超时”,实际常因某条 SQL 执行太久、持锁不放,拖垮整个连接队列。
slow_query_log = ON,long_query_time = 1,定期分析 mysqldumpslow 输出SHOW PROCESSLIST; 查看当前阻塞会话,重点关注 State 为 Sending data、Locked、Updating 且 Time 值异常高的线程AD_BI_NO)添加索引:CREATE INDEX idx_wf_approve_ad_bi_no ON wf_approve(AD_BI_NO);,把表级锁降为行级锁