Dalam beberapa kasus saat menjalankan MySQL di Amazon RDS (atau di tempat lain), mungkin perlu FLUSH
semua host
catatan dari MySQL. Biasanya, ini diperlukan ketika kesalahan "Host 'host_name' is blocked"
terjadi, yang akan mencegah koneksi tambahan dari host_name
tertentu itu .
host_name blocked
kesalahan terjadi ketika jumlah max_connect_errors
ditentukan dalam konfigurasi MySQL terlampaui, yang berarti host tertentu mencoba untuk menghubungkan terlalu banyak kali tidak berhasil. Ini adalah tindakan keamanan yang diterapkan oleh MySQL untuk mencegah serangan yang tidak beralasan dari host/pengguna yang tidak memiliki kredensial yang tepat, tetapi terkadang hal ini dapat terjadi karena kesalahan dan mungkin perlu diselesaikan dengan menghapus host.
Apa yang Dilakukan Host Flushing?
Dengan pengguna MySQL dengan hak istimewa yang tepat, jalankan FLUSH
pernyataan, MySQL dapat menghapus tabel flush, kunci, dan sistem cache internal tergantung pada options
yang diteruskan . Dalam kasus FLUSH HOSTS;
, MySQL akan mengosongkan cache host, yang secara efektif berarti catatan MySQL tentang host mana yang saat ini atau yang baru saja terhubung disetel ulang, memungkinkan koneksi lebih lanjut dari host tersebut.
Mengeksekusi FLUSH HOST Secara Langsung
Meskipun mungkin Anda benar-benar dicegah untuk terhubung ke MySQL, dalam beberapa kasus ada kemungkinan bahwa sistem akan "menyimpan" slot koneksi yang hanya tersedia untuk primer atau root
akun.
Untuk Amazon RDS
, nama pengguna ini biasanya ditemukan di konsol manajemen Anda sebagai default atau "Master". Coba sambungkan ke server MySQL Anda dengan nama pengguna utama ini.
Jika Anda dapat terhubung, membilas host Anda semudah menjalankan FLUSH HOSTS;
Pernyataan MySQL:
FLUSH HOSTS;
Anda sekarang seharusnya telah menghapus host_name blocked
error dan dapat terhubung dengan akun MySQL standar Anda.
Membersihkan Host dari Jarak Jauh Menggunakan MySQLAdmin
Jika Anda tidak dapat terhubung ke MySQL sebagai akun master dan masih menerima blocked
error, opsi selanjutnya adalah menyambung ke server dari jarak jauh dan menjalankan flush
perintah menggunakan mysqladmin
alat.
Untuk melakukan ini, Anda harus terhubung ke lain EC2 atau server yang memiliki akses ke server RDS yang menghasilkan kesalahan.
Setelah terhubung, jalankan perintah berikut dengan opsi yang tepat diganti antara <>
:
$ mysqladmin -h <RDS_ENDPOINT_URL> -P <PORT> -u <USER> -p flush-hosts
Jika berhasil, flush-hosts
perintah akan dijalankan seperti yang diharapkan dan Anda sekarang dapat terhubung ke MySQL seperti biasa.
Me-boot Ulang Instans RDS
Opsi terakhir, jika semuanya gagal, adalah cukup masuk ke panel kontrol manajemen RDS dan secara manual memulai ulang instans RDS yang memberikan kesalahan. Ini akan secara efektif mengatur ulang hosts cache
untuk Anda, meskipun mungkin tidak ideal dalam situasi produksi.