it-swarm.asia

Apa alasan Host 'Host_name' diblokir di MySQL?

Ketika saya menggunakan kata sandi yang salah untuk terhubung ke server mysql, dan jumlah tes di atas max_connect_errors, dan saya menemukan Aborted_connects juga muncul sebagai hitungan yang saya uji, tetapi Host masih belum diblokir.

Begitu juga Aborted_connects di atas max_connect_errors lalu Host_name diblokir?

12
user3157

Pada titik ini, Anda mungkin perlu menjalankan FLUSH HOSTS dan lihat apakah ini membuka blokir.

Dokumentasi MySQL mengatakan ini tentang FLUSH HOSTS:

  • Mengosongkan tabel cache Host. Anda harus menyiram tabel Host jika beberapa host Anda mengubah alamat IP atau jika Anda mendapatkan pesan kesalahan Host 'Host_name' diblokir. Ketika kesalahan lebih dari max_connect_errors terjadi berturut-turut untuk Host yang diberikan saat menyambung ke server MySQL, MySQL mengasumsikan bahwa ada sesuatu yang salah dan memblokir Host dari permintaan koneksi lebih lanjut. Pembilasan tabel Host memungkinkan upaya koneksi lebih lanjut dari Host. Lihat Bagian C.5.2.6, “Host 'Host_name' diblokir”. Anda dapat memulai mysqld dengan --max_connect_errors = 999999999 untuk menghindari pesan kesalahan ini.

Mengapa Host harus diblokir untuk memulai?

Menurut Dokumentasi MySQL :

Jika Anda mendapatkan kesalahan berikut, itu berarti mysqld telah menerima banyak permintaan koneksi dari Host 'Host_name' yang telah terputus di tengah: Host 'Host_name' diblokir karena banyak kesalahan koneksi. Buka blokir dengan 'mysqladmin flush-hosts' Jumlah permintaan koneksi terputus yang diizinkan ditentukan oleh nilai variabel sistem max_connect_errors. Setelah max_connect_errors permintaan gagal, mysqld mengasumsikan bahwa ada sesuatu yang salah (misalnya, seseorang mencoba untuk masuk), dan memblokir Host dari koneksi lebih lanjut sampai Anda menjalankan perintah mysqladmin flush-hosts atau mengeluarkan pernyataan FLUSH HOSTS. Lihat Bagian 5.1.3, “Variabel Sistem Server”.

Secara default, mysqld memblokir Host setelah 10 kesalahan koneksi. Anda dapat menyesuaikan nilainya dengan memulai server seperti ini:

Shell> mysqld_safe --max_connect_errors=10000 &

Jika Anda mendapatkan pesan kesalahan ini untuk Host yang diberikan, Anda harus terlebih dahulu memverifikasi bahwa tidak ada yang salah dengan koneksi TCP/IP dari Host itu. Jika Anda mengalami masalah jaringan, Anda tidak perlu menambah nilai variabel max_connect_errors.

8
RolandoMySQLDBA

Salah satu penyebab penyumbatan tersebut adalah ketika beberapa orang acak di Host memutuskan untuk melakukan pemantauan MySQL dan mengatur telnet ke port MySQL pada server jarak jauh. Dengan jumlah doa telnet yang cukup, Host kemudian diblokir dari akses lebih lanjut ke server MySQL. Tidak seperti beberapa server, MySQL tidak secara otomatis membuka blokir akses setelah jangka waktu yang wajar: administrator server harus mengetuk MySQL di kepala.

1
Richard