Tại thời điểm này, bạn có thể cần phải chạy FLUSH HOSTS và xem nếu điều này không khóa.
Tài liệu MySQL nói điều này về FLUSH HOSTS:
- Làm trống các bảng bộ đệm máy chủ. Bạn nên xóa các bảng máy chủ nếu một số máy chủ của bạn thay đổi địa chỉ IP hoặc nếu bạn nhận được thông báo lỗi Máy chủ 'host_name' bị chặn. Khi có nhiều lỗi max_connect_errors xảy ra liên tiếp cho một máy chủ nhất định trong khi kết nối với máy chủ MySQL, MySQL giả định rằng có gì đó không đúng và chặn máy chủ khỏi các yêu cầu kết nối tiếp theo. Việc xóa các bảng máy chủ cho phép các nỗ lực kết nối tiếp theo từ máy chủ. Xem Phần C.5.2.6, Host Host 'host_name' bị chặn. Bạn có thể bắt đầu mysqld với --max_connect_errors = 999999999 để tránh thông báo lỗi này.
Tại sao một máy chủ nên bị chặn để bắt đầu với ??
Theo Tài liệu MySQL :
Nếu bạn gặp phải lỗi sau, điều đó có nghĩa là mysqld đã nhận được nhiều yêu cầu kết nối từ máy chủ 'host_name' đã bị gián đoạn ở giữa: Máy chủ 'host_name' bị chặn do nhiều lỗi kết nối. Bỏ chặn với 'mysqladmin flush-hosts' Số lượng yêu cầu kết nối bị gián đoạn được phép được xác định bởi giá trị của biến hệ thống max_connect_errors. Sau khi max_connect_errors yêu cầu không thành công, mysqld giả định rằng có điều gì đó không ổn (ví dụ: ai đó đang cố xâm nhập) và chặn máy chủ khỏi các kết nối tiếp theo cho đến khi bạn thực hiện lệnh mysqladmin flush-hosts hoặc đưa ra câu lệnh FLUSH HOSTS. Xem Phần 5.1.3, Hệ thống máy chủ của Biến Biến.
Theo mặc định, mysqld chặn máy chủ sau 10 lỗi kết nối. Bạn có thể điều chỉnh giá trị bằng cách khởi động máy chủ như thế này:
shell> mysqld_safe --max_connect_errors=10000 &
Nếu bạn nhận được thông báo lỗi này cho một máy chủ nhất định, trước tiên bạn nên xác minh rằng không có gì sai với kết nối TCP / IP từ máy chủ đó. Nếu bạn đang gặp vấn đề về mạng, việc tăng giá trị của biến max_connect_errors là không tốt.