1. 程式人生 > >MySQL提示too many connections的一次解決過程

MySQL提示too many connections的一次解決過程

端口 存在 機器 很多 個數 https cat use skip

在一次故障過程中,登錄mysql時候提示too many connections,重啟數據庫後,很快再次提示,show processlist查看等待進程,發現很多類似:

mysql>show processlist;
| 20681949 | unauthenticated user | 10.10.4.193:52497 | NULL | Connect | | Reading from net | NULL |
| 20681948 | unauthenticated user | 10.10.4.193:52495 | NULL | Connect | | Reading from net | NULL

查閱網上資料,https://blog.csdn.net/moqiang02/article/details/21631729 ,修改/etc/my.cnf配置增加skip-name-resolve後正常。

開啟tcpdump port 53跟蹤,在其它機器上telnet ip 3306端口,可看到跟蹤信息,進行了域名逆向解析。禁用skip-name-resolve後,則無逆向解析信息。為驗證域名地址完全異常情況是否有問題,配置不存在的域名地址,同樣不會出現跟蹤信息。
故分析原因為8.8.8.8的DNS地址不穩定或者半死不活導致,如8.8.8.8徹底故障也不會出現問題。

故今後對mysql進行優化必須配置禁用DNS解析,同時應用盡量采用連接池技術(本次應用連接過多,很大部分是因為一個連接就建立一個數據庫連接)

MySQL提示too many connections的一次解決過程