Pengembang aplikasi mungkin mengalami kesulitan menghubungkan ke database yang dihosting di server selain server lokal. Pada artikel ini, kami akan mengatasi kesalahan umum yang terjadi saat menghubungkan ke database MySQL dari jarak jauh dari luar jaringan atau dari host lain.
SQLSTATE[HY000] [1130] Host '172.19.0.11' is not allowed to connect to this MySQL server
kesalahan terjadi ketika permintaan koneksi ditolak oleh server MySQL.
Untuk mengaktifkan koneksi jarak jauh, kita perlu melakukan langkah-langkah berikut –
- Aktifkan koneksi jarak jauh dari konfigurasi
- Buat pengguna baru dan izinkan untuk terhubung ke server database dari host tertentu (atau semua host)
- Hapus hak istimewa
Aktifkan koneksi jarak jauh dari konfigurasi MySQL
/etc/mysql/my.cnf
atau /etc/my.cnf
atau /etc/mysql/mysql.conf.d/mysqld.cnf
. Lokasi file konfigurasi MySQL tergantung pada versi MySQL yang Anda gunakan. Periksa semua lokasi ini untuk melihat apakah Anda dapat menemukan file konfigurasi. Silakan bergabung dengan server Discord kami dan beri tahu kami jika Anda belum menemukan file konfigurasi. Mungkin kami dapat membantu Anda.
Setelah menemukan file konfigurasi, buka dan beri komentar baris bind-address = 127.0.0.1
.
Cukup tambahkan # sebelum baris untuk mengomentarinya.
# bind-address = 127.0.0.1
Buat pengguna MySQL baru
Masuk ke MySQL sebagai root –
sudo mysql
Or
mysql -u root -p
Tergantung pada metode yang Anda pilih, Anda akan diminta untuk memasukkan kata sandi Anda. sudo
kata sandi jika Anda masuk dengan sudo
.
Setelah berada di baris perintah MySQL, buat pengguna baru –
> CREATE USER 'username'@'ip-address' IDENTIFIED BY 'set-password';
Harap ganti ‘nama pengguna ' dengan nama pengguna yang diinginkan, 'set-password ' dengan kata sandi yang kuat, dan 'ip-address ' dengan alamat IP jarak jauh pada perintah di atas. Anda akan melihat pesan berikut jika pengguna baru telah dibuat –
Query OK, 0 rows affected (0.02 sec)
> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'ip-address';
Harap ganti nama pengguna pada perintah sebelumnya dengan nama pengguna yang sebenarnya dan ip-address dengan alamat ip komputer jarak jauh (host). Setelah selesai, hapus hak istimewa agar perubahan diterapkan.
> FLUSH PRIVILEGES;
Izinkan semua koneksi jarak jauh
Seperti pada perintah sebelumnya, saya menginstruksikan untuk mengganti alamat ip dengan alamat IP komputer jarak jauh. Hanya koneksi dari komputer jarak jauh itu yang diizinkan. Namun, kami juga dapat menggunakan wildcard '%' untuk mengizinkan semua koneksi, terlepas dari apakah itu dari komputer Anda atau dari orang bawah tanah yang membutuhkan akses ke database Anda untuk alasan pribadi. Namun, mereka harus memasukkan kredensial yang benar untuk mengakses database.
> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'%';
Izinkan koneksi dari rentang alamat IP
Jika server jarak jauh berada di jaringan yang sama, alamat IP mereka dapat dengan mudah diizinkan untuk memungkinkan koneksi jarak jauh tanpa memerlukan banyak pengguna MySQL.
> GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'172.19.0.*';
Perhatikan bagaimana oktet terakhir dari alamat IP telah diganti dengan * dalam perintah di atas. Ini memungkinkan semua server dengan alamat IP tersebut untuk memulai dengan 172.19.0.