MySQL'de 'host_name' sunucusunun engellenmesinin nedeni nedir?


12

MySQL sunucusuna bağlanmak için yanlış parola kullandığımda ve sınama sayısı bitti max_connect_errorsve ben Aborted_connectsde sayısı I sınama olarak ortaya çıktığını, ancak ana bilgisayar hala engellenmediğini bulmak.

Peki o zaman Aborted_connectsüzerinde max_connect_errorshost_name engellenir mi?

Yanıtlar:


8

Bu noktada, FLUSH HOSTS'u çalıştırmanız ve engellemenin kaldırılıp kaldırılmadığını görmeniz gerekebilir .

MySQL Belgeleri FLUSH HOSTS hakkında şunları söylüyor:

  • Ana bilgisayar önbellek tablolarını boşaltır. Ana makinelerinizden bazıları IP adresini değiştirirse veya 'host_name' ana bilgisayarı engellendi hata iletisini alırsanız ana bilgisayar tablolarını temizlemelisiniz. MySQL sunucusuna bağlanırken belirli bir ana makine için art arda max_connect_errors hatası oluştuğunda, MySQL bir şeyin yanlış olduğunu varsayar ve ana makineyi daha fazla bağlantı isteğinden korur. Ana bilgisayar tablolarını yıkamak, ana bilgisayardan daha fazla bağlantı denemesi yapılmasını sağlar. Bkz. Bölüm C.5.2.6, “Ana makine 'ana makine_adı' engellendi”. Bu hata iletisini önlemek için mysqld'yi --max_connect_errors = 999999999 ile başlatabilirsiniz.

Neden bir ev sahibi başlamak için engellenmeli?

Göre MySQL Dokümantasyon :

Aşağıdaki hatayı alırsanız, mysqld 'ana bilgisayar_adı' ana bilgisayarından ortadan kesilen birçok bağlantı isteği aldı demektir: Ana bilgisayar 'ana_adı' birçok bağlantı hatası nedeniyle engellendi. 'Mysqladmin flush-hosts' ile engellemeyi kaldırma İzin verilen kesintili bağlantı isteklerinin sayısı, max_connect_errors sistem değişkeninin değeri ile belirlenir. Max_connect_errors istekleri başarısız olduktan sonra, mysqld bir şeyin yanlış olduğunu varsayar (örneğin, birileri girmeye çalışıyor) ve bir mysqladmin flush-hosts komutu yürütene veya bir FLUSH HOSTS deyimi yayınlayana kadar ana makineyi diğer bağlantılardan engeller. Bkz. Bölüm 5.1.3, “Sunucu Sistem Değişkenleri”.

Varsayılan olarak, mysqld 10 bağlantı hatasından sonra bir ana bilgisayarı engeller. Sunucuyu şu şekilde başlatarak değeri ayarlayabilirsiniz:

shell> mysqld_safe --max_connect_errors=10000 &

Belirli bir ana bilgisayar için bu hata iletisini alırsanız, önce o ana makineden gelen TCP / IP bağlantılarında bir sorun olmadığını doğrulamanız gerekir. Ağ sorunlarınız varsa, max_connect_errors değişkeninin değerini arttırmanız iyi olmaz.


Bu hatalar normal MySQL hata günlüğüne gidiyor gibi görünmüyor. Ana bilgisayar engelleme bağlantı hatalarının bir günlüğünü görmenin bir yolu var mı? Ayrıca yukarıda "ard arda" dikkatimi çekti. Peki, aralarında başarılı bir bağlantıya mı ihtiyacınız var? Yoksa yeni bir soru sormalı mıyım?
Marc

1

Bu tür bir tıkanmanın bir nedeni, ana bilgisayardaki bazı rastgele kişilerin MySQL'in bir miktar izlemesine karar vermesi ve uzak sunucudaki MySQL portuna bir telnet kurmasıdır. Yeterli sayıda telnet çağrısı ile, ana bilgisayarın bu MySQL sunucusuna daha fazla erişimi engellenir. Bazı sunuculardan farklı olarak, MySQL makul bir süre sonra otomatik olarak erişimi engellemez: sunucu yöneticisi MySQL'in başına geçmelidir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.