Cara Setting Akses Remote Database MariaDB di Ubuntu
Instalasi database MariaDB secara default hanya bisa diakses oleh komputer lokal saja (localhost / 127.0.0.1) demi alasan keamanan. Tapi dalam beberapa kasus kadang programer membutuhkan akses database MariaDB dapat dilakukan secara remote dari komputer lain (IP address lain).
Setting MariaDB Server
Buka file konfigurasi MariaDB menggunakan nano.
1 | sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf |
Cari bind-address ganti nilainya dari 127.0.0.1 menjadi 0.0.0.0 atau langsung menggunakan IP address dari server.
- bind-address = 127.0.0.1, server hanya menerima koneksi TCP/IP yang masuk melalui 127.0.0.1.
- bind-address = 149.28.159.140, server hanya menerima koneksi TCP/IP yang masuk melalui IPv4 yang diisikan.
- bind-address = 0.0.0.0, server menerima koneksi TCP/IP yang masuk melalui semua IPv4 yang ada pada interface jaringan.
- Dapat memasang lebih dari satu bind-address seperti gambar di bawah ini.
Kemudian restart service
1 | sudo systemctl restart mysql |
Membuat user dan database jika belum ada.
1 2 3 4 5 6 | mysql -u root -p MariaDB [(none)]> CREATE DATABASE mydb; MariaDB [(none)]> CREATE USER 'musa'@'%' IDENTIFIED BY 'rahasia'; MariaDB [(none)]> GRANT ALL PRIVILEGES ON mydb.* TO 'musa'@'%'; MariaDB [(none)]> FLUSH PRIVILEGES; |
- Login ke database dengan user root.
- Membuat database mydb.
- Membuat user musa@ip-address-apapun dengan password rahasia.
- Memberikan semua hak akses untuk database mydb dengan semua tabel yang ada kepada user musa@ip-address-apapun.
- Reload hak akses.
Pengujian Akses Remote MariaDB dengan Aplikasi Client
Remote MariaDB dengan menggunakan aplikasi MariaDB client berbasis CLI di Linux terminal.
Login dengan user musa pada database server 149.28.159.140 dengan memakai password. Cek dengan menampilkan database dan status server.
1 | mysql -u musa -h 149.28.159.140 -p |
Pengujian Akses Remote MariaDB dengan PHP
Selanjutnya melakukan pengujian dengan membuat file PHP di komputer lokal yang berisi login ke database server.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?php $hostname = "149.28.159.140"; $username = "musa"; $password = "rahasia"; $database = "mydb"; $con = new mysqli($hostname, $username, $password, $database); if(!$con){ echo "Database Error ".mysqli_error(); exit; } else { echo "Sukses terhubung ke server database ".$hostname; } mysqli_close($con); ?> |
Hasilnya jika login database sukses.
Selamat mencoba 🙂
Kok ane bind pake ip sendiri ga bisa ya, connection refused.
Tapi kalo 0.0.0.0 dia bisa di remote, aneh nih om wkwkw kira2 salah dimana ya?
coba cek error log mariadb
Wah bang… makasih banyak, hehehehehe saya coba2 setting g ketemu, ketemu abang langsung lancar koneksinya. trims. semoga jadi berkat buat semua. amin…..
izin meninggal jejak, berhasil OM mantep. Makasih OM
Selamat sore Bang Musa Amin, mau tanya,
saya coba untuk mengisi file /etc/mysql/mariadb.conf.d/50-server.cnf dengan ip yg diijinkan akses mySQL tapi tidak berhasil, jika diisi dengan bind-address = 0.0.0.0 baru bisa, kenapa bisa begitu ya? Berarti semua IP bisa akses ya?
Terimakasih
IP server yang dimasukkan. Jika 0.0.0.0, berarti MariaDB listening di semua IP server yang ada.
makasih banyak ya mas its work