您好,登錄后才能下訂單哦!
本篇文章為大家展示了MySQL中host is blocked, flush hosts的示例分析,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
背景:
MySQL-5.5.41, 開發用的環境連接MySQL客戶端時報錯;
場景:
業務方反饋在連接MySQL的時候報錯了, 且應用也在輸出了一樣的錯誤信息:
點擊(此處)折疊或打開
ERROR 1129 (HY000): Host 'x.x.x.x' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
且開發的同事嘗試修改了max_connect_errors的參數;
調整到1000以后, 再進行flush hosts, 雖然能夠解決問題, 但是一分鐘之后還是會報同樣的錯誤;
分析:
引起這個問題的原因很直白, 在報錯信息里面都寫明了, "because of many connection errors";
然后看了一下aborted connections, 確實如描述一般, too many......
中間還查看了一次host的參數, 因為在5.7里面, 設置host_cache_size為0就可以避免這個問題了,
然而5.5壓根就沒有這個參數......_(:з」∠)_
考慮一下發生這個問題的根本原因:
host_cache中, 記錄了的blocked錯誤, 如果這種錯誤的數量太多, 且在上一次成功連接之后, 這種錯誤的數量超過了max_connect_errors的值,
那么MySQL就會拋出這個錯誤, 并提示需要flush hosts;
5.7中設置size為0(動態參數), 變相的使得mysql認為blocked的數量一直是0, 所以就不會再報這種錯了,
從根本原因來看, 關掉host cache也是一個解決的辦法;
那么如何關掉host cache?
MySQL5.5和5.7在show variables中都沒有一個明確的參數能關閉host cache,
翻了一下文檔, 發現只能在啟動的時候加上skip-host-cache才能關閉;
處理方式:
最終是協商了重啟的時間, 在開發機的MySQL配置文件加上了skip-host-cache來徹底關閉這個cache, 然后隨開發們亂搞去吧......╮(╯_╰)╭
上述內容就是MySQL中host is blocked, flush hosts的示例分析,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。