溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

MySQL中host is blocked, flush hosts的示例分析

發(fā)布時間:2021-10-25 16:16:35 來源:億速云 閱讀:383 作者:柒染 欄目:MySQL數(shù)據(jù)庫

本篇文章為大家展示了MySQL中host is blocked, flush hosts的示例分析,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。



背景:
MySQL-5.5.41, 開發(fā)用的環(huán)境連接MySQL客戶端時報錯;

場景:
業(yè)務(wù)方反饋在連接MySQL的時候報錯了, 且應(yīng)用也在輸出了一樣的錯誤信息:

點擊(此處)折疊或打開

  1. ERROR 1129 (HY000): Host 'x.x.x.x' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'

且開發(fā)的同事嘗試修改了max_connect_errors的參數(shù);

調(diào)整到1000以后, 再進行flush hosts, 雖然能夠解決問題, 但是一分鐘之后還是會報同樣的錯誤;

分析:
引起這個問題的原因很直白, 在報錯信息里面都寫明了, "because of many connection errors";

然后看了一下aborted connections, 確實如描述一般, too many......

MySQL中host is blocked, flush hosts的示例分析

中間還查看了一次host的參數(shù), 因為在5.7里面, 設(shè)置host_cache_size為0就可以避免這個問題了,

然而5.5壓根就沒有這個參數(shù)......_(:з」∠)_

考慮一下發(fā)生這個問題的根本原因:

host_cache中, 記錄了的blocked錯誤, 如果這種錯誤的數(shù)量太多, 在上一次成功連接之后, 這種錯誤的數(shù)量超過了max_connect_errors的值,
那么MySQL就會拋出這個錯誤, 并提示需要flush hosts;

5.7中設(shè)置size為0(動態(tài)參數(shù)), 變相的使得mysql認為blocked的數(shù)量一直是0, 所以就不會再報這種錯了,

從根本原因來看, 關(guān)掉host cache也是一個解決的辦法;

那么如何關(guān)掉host cache?

MySQL5.5和5.7在show variables中都沒有一個明確的參數(shù)能關(guān)閉host cache,

翻了一下文檔, 發(fā)現(xiàn)只能在啟動的時候加上skip-host-cache才能關(guān)閉;

處理方式:
最終是協(xié)商了重啟的時間, 在開發(fā)機的MySQL配置文件加上了skip-host-cache來徹底關(guān)閉這個cache, 然后隨開發(fā)們亂搞去吧......╮(╯_╰)╭

上述內(nèi)容就是MySQL中host is blocked, flush hosts的示例分析,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI