Aktifkan Remote Access (Grant) Beranda / Tutorial / Mysql / Aktifkan Remote Access (Grant) Jika Anda mencoba untuk terhubung ke server mysql Anda dari mesin jarak jauh, dan mengalami kesalahan seperti di bawah ini, artikel ini adalah untuk Anda.
GALAT 1130 (HY000): Host '1.2.3.4' tidak diizinkan untuk terhubung ke server MySQL ini
Ubah konfigurasi mysql
Mulailah dengan mengedit file konfigurasi mysql
vim /etc/mysql/my.cnf
Komentari baris berikut.
#bind-address = 127.0.0.1
#skip-networking
Jika Anda tidak menemukan jalur lewati jaringan, tambahkan dan komentari.
Mulai ulang server mysql.
~ /etc/init.d/mysql restart
Ubah hak istimewa GRANT
Anda mungkin terkejut melihat bahkan setelah perubahan di atas Anda tidak mendapatkan akses jarak jauh atau mendapatkan akses tetapi tidak dapat ke semua database.
Secara default, nama pengguna dan kata sandi mysql yang Anda gunakan diizinkan untuk mengakses server mysql secara lokal. Jadi perlu memperbarui hak istimewa.
Jalankan perintah seperti di bawah ini untuk mengakses dari semua mesin. (Ganti USERNAME
dan PASSWORD
oleh kredensial Anda.)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
Jalankan perintah seperti di bawah ini untuk memberikan akses dari IP tertentu. (Ganti USERNAME
dan PASSWORD
oleh kredensial Anda.)
mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'1.2.3.4' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
Anda dapat mengganti 1.2.3.4 dengan IP Anda. Anda dapat menjalankan perintah di atas berkali-kali untuk memberikan akses dari beberapa IP.
Anda juga dapat menentukan terpisah USERNAME
&PASSWORD
untuk akses jarak jauh.
Anda dapat memeriksa hasil akhir dengan:
SELECT * from information_schema.user_privileges where grantee like "'USERNAME'%";
Terakhir, Anda mungkin juga perlu menjalankan:
mysql> FLUSH PRIVILEGES;
Tes koneksi
Dari terminal / command-line:
mysql -h HOST -u USERNAME -pPASSWORD
Jika Anda mendapatkan shell mysql, jangan lupa untuk menjalankan show show; untuk memeriksa apakah Anda memiliki hak istimewa dari mesin jarak jauh.
Tip-Bonus: Cabut Akses
Jika Anda secara tidak sengaja memberikan akses ke pengguna, lebih baik gunakan opsi pencabutan.
Berikut ini akan mencabut semua opsi untuk USERNAME dari semua mesin:
mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'USERNAME'@'%';
Following will revoke all options for USERNAME from particular IP:
mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'USERNAME'@'1.2.3.4';
Its better to check information_schema.user_privileges table after running REVOKE command.
Jika Anda melihat hak istimewa USAGE setelah menjalankan perintah REVOKE, tidak masalah. Ini sama baiknya dengan tidak ada hak istimewa sama sekali. Saya tidak yakin apakah itu dapat dicabut.