1. 程式人生 > 其它 >mysql使用者不能通過其他主機遠端連線問題

mysql使用者不能通過其他主機遠端連線問題

mysql連線flush-hosts問題處理

【錯誤】1
mysql主從報錯:
error connecting to master 'slave@ip:3306' - retry-time: 6

或者

【錯誤】2
其他主機連線報錯:

Host is blocked because of many connection errors; unblock with ‘mysqladmin flush-hosts’;

【原因】

同一個ip在短時間內產生太多(超過mysql資料庫max_connection_errors的最大值)中斷的資料庫連線而導致的阻塞;

【解決方法】

  • 1.首先使用 root 登入 mysql -u root -p
  • 2.提高允許的max_connection_errors數量(治標不治本):
    • ① 進入Mysql資料庫檢視max_connection_errors: show variables like "max_connection_errors";
    • ② 修改max_connection_errors的數量為1000: set global max_connect_errors = 1000;
    • ③ 修改 max_connections 的數量為1000 :set global max_connections = 1000;
  • 3.使用 mysql> flush hosts; 命令清理一下hosts檔案;
    • ① 最簡單的方法是root登入後,直接使用 mysql> flush hosts;
      命令;

不過這些方法都是治標不治本的,本質原因是由於程式中建立了過多的mysql連線,通常情況下,程式開始的執行的時候建立與資料庫的連線,執行期間進行資料庫的一些增刪改查操作,程式關閉的時候,斷開與資料庫的連線。

是故無冥冥之志者,無昭昭之明;無惛惛之事者,無赫赫之功。

本文來自部落格園,作者:wuguofeng,轉載請註明原文連結:https://www.cnblogs.com/wuguofeng/p/15474902.html