Introduction
Secara default, MySQL server hanya listens atau mengijinkan koneksi dari localhost saja, yang artinya adalah hanya dapat diakses oleh aplikasi yang berjalan di host yang sama/di terminal server.
Namu di dalam beberapa situasi kita perlu untuk akses MySQL server dari lokasi yang berbeda network dan misalnya ketika anda ingin terhubung ke MySQL dari satu tempat ke tempat lain atau ketika kita menggunakan deployment multi-server,
dimana aplikasi berjalan dengan source yang berbeda dari server database.
Dan salah satu opsi adalah mengakses MySQL melalui SSH Tunnel atau melakukan konfigurasi MySQL server untuk menerima koneksi dari source yang berbeda, dan kali ini saya akan membahas tentang Cara kita Remote Database MySQL , dan konfigurasi ini juga berlaku untuk DB MariaDB.
Prepare
- Siapkan MySQL server anda Cara Install MySQL di Ubuntu
- Pastikan Anda masuk sebagai pengguna dengan hak istimewa sudo.
Cara Remote Database MySQL
Step 1 – Konfigurasi MySQL
Pada saat saya menulis artikel ini, versi terbaru MySQL yang tersedia di repositeri adalah MySQL versi 8.0.23 , dan kita bisa check repository mysql di Link ini.
Yang pertama kita lakukan adalah mengatur alamat IP yang akan kita ijinkan untuk melakukan remote.
Jika MySQL server dan client dapat berkomunikasi satu dengan yang lain maka melalui private network, adalah opsi terbaik untuk
mengatur MySQL server untuk hanya listen pada Private IP, dan jika tidak maka opsi kedua adalah mengubungkan server melalui jaringan public
maka atur MySQL server untuk listen pada semua alamat IP pada server anda, dan kita akan menggunakan opsi kedua tsb.
- Lakukan perubahan indeks IP di conf MySQL
$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
- Cari baris atau kata kunci “
bind-address“ Secara default, nilainya diatur ke127.0.0.1(hanya listens di localhost) dan disini kita rubah untuk listen pada semua interface IPv4 dengan mengubah nilainya menjadi0.0.0.0
$ bind-address = 0.0.0.0 # skip-networking
- Save lalu restart services MySQL nya
$ sudo systemctl restart mysql
Step 2 – Create Account / create access privileges ke user dari Remote Machine
Langkah selanjutnya adalah memberikan akses user untuk conect ke database server kita
- Log in ke MySQL dan masuk sebagai root:
$ sudo mysql -u root -p
- Create user terlebih dahulu sebelum memberikan akses privileges
CREATE USER 'nama user'@'%' IDENTIFIED BY 'password';
- Inject privileges pada user yang sudah kita buat tadi
GRANT ALL PRIVILEGES ON nama_user.* TO 'nama_database'@'IPaddres_%';
flush privileges;
NB : untuk version Mysql 8 anda harus menambahkan sytnax berikut supaya authentication protocolnya support
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Penjelasan :
nama_databaseadalah nama database yang akan disambungkan user .nama_useradalah nama dari user MySQL.ip_addressadalah alamat IP dari mana user akan terhubung. Gunakan%untuk memungkinkan user terhubung dari alamat IP apa pun.
Step 3 – Testing remote / akses Database nya
Disini saya menggunakan aplikasi HeidiSQL untuk remote , dan kalian bisa menggunakan aplikasi pihak ke3 lainya seperti navicat, dll.

- Hostname / IP server Database
- Masukan user password yang sudah kita berikan privileges tadi
- Open to Conect
Finish, Thanks a lot sudah berkunjung dan juga jangan lupa kritik & saranya, jika berkenan.

Admin website igunawan.com, System Administrator, DevOps Engineer
