it-swarm.asia

ما هو سبب حظر Host 'Host_name' في MySQL؟

عندما أستخدم كلمة مرور غير صحيحة للاتصال بخادم الخلية ، ويكون عدد الاختبارات أكبر من max_connect_errors وأجد Aborted_connects ينشأ أيضًا على أنه العدد الذي أختبره ، ولكن المضيف لا يزال غير محظور.

وكذلك يفعل Aborted_connects على مدار max_connect_errors ثم تم حظر Host_name؟

12
user3157

عند هذه النقطة ، قد تحتاج إلى تشغيل FLUSH HOSTS ومعرفة ما إذا كان هذا يلغي الحظر.

تقول وثائق MySQL هذا عن مضيفات FLUSH:

  • يفرغ جداول ذاكرة التخزين المؤقت للمضيف. يجب عليك مسح جداول المضيف إذا قام بعض مضيفك بتغيير عنوان IP أو إذا تلقيت رسالة خطأ تم حظر Host 'Host_name'. عندما تحدث أكثر من أخطاء max_connect_errors بشكل متتابع لمضيف معين أثناء الاتصال بخادم MySQL ، يفترض MySQL أن هناك خطأ ما ويحظر المضيف من طلبات الاتصال الإضافية. يتيح مسح جداول المضيف المزيد من محاولات الاتصال من المضيف. راجع القسم C.5.2.6 ، "المضيف" Host_name "محظور". يمكنك بدء mysqld باستخدام --max_connect_errors = 999999999 لتجنب رسالة الخطأ هذه.

لماذا يجب أن يتم حظر المضيف للبدء؟

وفقًا توثيق MySQL :

إذا تلقيت الخطأ التالي ، فهذا يعني أن mysqld قد تلقى العديد من طلبات الاتصال من Host 'Host_name' التي تمت مقاطعتها في المنتصف: تم حظر Host '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.

8
RolandoMySQLDBA

أحد أسباب هذا الانسداد هو أن يقرر شخص عشوائي على المضيف القيام ببعض المراقبة لـ MySQL ويقوم بإعداد telnet إلى منفذ MySQL على الخادم البعيد. مع وجود عدد كاف من عمليات استدعاء telnet ، يتم حظر المضيف من الوصول إلى خادم MySQL. على عكس بعض الخوادم ، لا يقوم MySQL بإلغاء حظر الوصول تلقائيًا بعد فترة زمنية معقولة: يجب على مسؤول الخادم أن يطرق MySQL على رأسه.

1
Richard