ณ จุดนี้คุณอาจต้องเรียกใช้ฟลัชโฮลต์และดูว่าการปลดบล็อกนี้หรือไม่
เอกสาร MySQL กล่าวสิ่งนี้เกี่ยวกับโฮสต์ล้าง:
- ล้างตารางแคชโฮสต์ คุณควรล้างข้อมูลตารางโฮสต์หากโฮสต์บางแห่งของคุณเปลี่ยนที่อยู่ IP หรือหากคุณได้รับข้อความแสดงข้อผิดพลาด Host 'host_name' ถูกบล็อก เมื่อเกินกว่าข้อผิดพลาด max_connect_errors เกิดขึ้นอย่างต่อเนื่องสำหรับโฮสต์ที่กำหนดในขณะที่เชื่อมต่อกับเซิร์ฟเวอร์ MySQL, MySQL จะถือว่าสิ่งผิดปกติและบล็อกโฮสต์จากการร้องขอการเชื่อมต่อเพิ่มเติม การล้างตารางโฮสต์ช่วยให้สามารถทำการเชื่อมต่อเพิ่มเติมจากโฮสต์ได้ ดูส่วน C.5.2.6“ โฮสต์ 'host_name' ถูกบล็อก” คุณสามารถเริ่ม mysqld ด้วย --max_connect_errors = 999999999 เพื่อหลีกเลี่ยงข้อความแสดงข้อผิดพลาดนี้
ทำไมโฮสต์ควรถูกบล็อกเพื่อเริ่มต้นด้วย?
ตามเอกสาร MySQL :
หากคุณได้รับข้อผิดพลาดต่อไปนี้หมายความว่า mysqld ได้รับการร้องขอการเชื่อมต่อจำนวนมากจากโฮสต์ 'host_name' ที่ถูกขัดจังหวะกลาง: โฮสต์ 'host_name' ถูกบล็อกเนื่องจากข้อผิดพลาดการเชื่อมต่อจำนวนมาก เลิกบล็อกด้วย 'mysqladmin flush-hosts' จำนวนการร้องขอการเชื่อมต่อที่ถูกขัดจังหวะจะถูกกำหนดโดยค่าของตัวแปรระบบ max_connect_errors หลังจากการร้องขอ max_connect_errors ล้มเหลว mysqld จะถือว่าบางสิ่งผิดปกติ (เช่นมีคนพยายามบุกรุก) และบล็อกโฮสต์จากการเชื่อมต่อเพิ่มเติมจนกว่าคุณจะรันคำสั่ง mysqladmin flush-hosts หรือออกคำสั่ง FLUSH HOSTS ดูหัวข้อ 5.1.3“ ตัวแปรระบบเซิร์ฟเวอร์”
โดยค่าเริ่มต้น mysqld บล็อกโฮสต์หลังจาก 10 ข้อผิดพลาดการเชื่อมต่อ คุณสามารถปรับค่าโดยเริ่มต้นเซิร์ฟเวอร์ดังนี้:
shell> mysqld_safe --max_connect_errors=10000 &
หากคุณได้รับข้อความแสดงข้อผิดพลาดนี้สำหรับโฮสต์ที่กำหนดคุณควรตรวจสอบก่อนว่าไม่มีอะไรผิดปกติกับการเชื่อมต่อ TCP / IP จากโฮสต์นั้น หากคุณประสบปัญหาเครือข่ายคุณไม่สามารถเพิ่มค่าของตัวแปร max_connect_errors ได้