Ketika pertama di-install, database MySQL atau MariaDB defaultnya tidak bisa diakses dari luar. Daemon MySQL hanya akan listening pada localhost (127.0.0.1), jadi tidak bisa diakses dari luar server.
Agar database tersebut dapat diakses dari luar server anda perlu merubah sedikit konfigurasi pada database tersebut.
Konfigurasi
Pada artikel ini saya menggunakan mariadb, jika anda menggunakan mysql lokasi file konfigurasinya juda beradai di dekat sana. MariaDB merupakan versi fork dari MySQL, konfigurasi yang dimiliki untuk kedua database ini tidak berbeda jauh.
nano /etc/mysql/mariadb.conf.d/50-server.cnf
kemdian cari opsi bind-address, dan ubah valunya menjadi seperti dibawah ini:
bind-address = 0.0.0.0
0.0.0.0 akan membuat daemon mysql listen pada semua interface sehingga dapat diakses dari luar server. Anda dapat mengubah value tersebut jika ingin mysql hanya listen pada alamat ip tertentu saja.
simpan file tersebut kemudian restart mysqlnya
systemctl restart mysql
Pastikan juga port 3306 tidak diblok oleh firewall. Untuk mengujinya anda dapat menggunakan perintah telnet:
telnet <ipserver> 3306
User Untuk Remote
Selain mengubah konfigurasi mysql, untuk dapat mengakses database anda juga perlu permission atau menggunakan user yang tepat. Pastikan User yang anda gunakan hostnya bukan localhost.
Untuk membuat user yang dapat diakses dari mana saja via command line:
CREATE USER 'remoteuser'@'%' IDENTIFIED BY 'passworduser';
% merupakan wildcard yang berarti user tersebut dapat diakses dari host mana saja.
kemudian grant permission ke database untuk user tersebut
GRANT ALL PRIVILEGES ON namadatabase . * TO 'remoteuser'@'%';
terakhir lakukan flush privileges agar permission terupdate
FLUSH PRIVILEGES;
kemudian coba akses.
Leave a Reply