MySQL Error Hostname Resolve

Pernah mendapatkan pesan galat seperti berikut ketika mencoba menyambung ke server MySQL ?

ERROR 1042 (HY000): Can't get hostname for your address

Sila tambah baris berikut di berkas konfigurasi server MySQL dalam blok [mysqld].

[mysqld]
; konfigurasi anda yang lain
skip-name-resolve

Di sistem operasi Linux Ubuntu, berkas konfigurasi terdapat di /etc/mysql/my.cnf. Diperlukan akses root untuk menyuntingnya atau bisa juga dilakukan dengan perintah sudo.

$ sudo vim /etc/mysql/my.cnf

Selanjutnya restart MySQL

$ sudo restart mysql

Secara bawaan, MySQL melakukan pemetaan alamat IP dan hostname klien dan menyimpannya di cache. Hostname klien didapatkan melalui proses DNS lookup. Dengan cache ini, MySQL tidak perlu melakukan DNS lookup tiap kali klien melakukan koneksi.

Karna satu dan lain hal, MySQL tidak dapat me-resolve hostname klien yang akan terhubung. Entah karna masalah jaringan atau hal lain. Disinilah peran baris skip-name-resolve yang akan men-disable proses DNS lookup tadi.

Selain dengan menyunting berkas konfigurasi, ada juga cara dengan menambahkan parameter  pada saat menyalakan server MySQL

$ sudo mysqld --skip-name-resolve

Nah, tinggal dipilih mau yang mana. Untuk kebutuhan sementara (sekali atau dua kali), cara kedua bisa jadi lebih mudah. Namun untuk keperluan jangka panjang, cara pertama lebih menguntungkan karna tidak perlu menambahkan parameter tiap kali men-start/restart MySQL.