Langkah awal sebelum memberikan akses remote terhadap database mysql adalah menyiapkan, menginstall dan mengkonfigurasi database mysql tersebut. Untuk panduan lengkap konfigurasi mysql pada ubuntu server 18.04 dapat melihat pada tautan dibawah ini
Cara Akses Database Mysql pada Server secara Remote dengan HeidiSQL dan Mysql Workbench
Pada saat fase development atau production akses remote sangatlah penting untuk menunjang kegiatan operation karena tidak semua user memiliki akses pada konsol server secara langsung. Sehingga solusinya adalah menggunakan remote login.
Remote login memiliki resiko terjadinnya sharing username dan password antar user. Hal ini sangat penting untuk dihindari dengan melakukan implementasi pembatasan ip dan kebijakan ketat.
Pada saat mysql terinstall dalam server, secara default, database mysql tersebut hanya akan dapat diakses melalui localhost (bind-address : ip).

Hal ini terlihat pada konfigurasi mysqld.cnf yang terletak pada lokasi dibawah ini
/etc/mysql/mysql.conf.d/mysqld.cnf
pada saat file tersebut dibuka, maka akan jelas terpampang bahwa, server hanya akan mengizinkan koneksi local terhadap database mysql.
Langkah 1 – Mengganti bind-address local ke public ip
bind-address yang terdapat pada mysqld.cnf harus diganti menjadi wildcard(* atau 0.0.0.0) atau ip dari server tertentu (pembatasan akses) agar remote access dapat dilakukan. Proses penggantian ini akan dilakukan pada file mysqld.cnf. Gunakan perintah dibawah ini untuk memodifikasi isi dari mysqld.cnf
nano /etc/mysql/mysql.conf.d/mysqld.cnf
kemudian ubah ip yang terdapat pada bind-address dengan wildcard ataupun ip server tertentu.

Pada ulasan ini, skenarionya adalah membolehkan akses user secara remote dari manapun. Sehingga bind-addressnya akan menjadi seperti berikut ini
bind-address: 0.0.0.0
Untuk menyimpan tekan ctrl + O apabila tidak ingin menyimpan tekan ctrl + X (exit)
langkah 2 – konfigurasi firewall
langkah selanjutnya adalah memperbolehkan akses dari mana saja terhadap mysql yakni pada port 3306 (default port untuk mysql).
langkah ini dapat menyebabkan masalah keamanan karena port 3306 dapat diakses dari mana saja. Sangat tidak disarankan. Lebih baik memberikan restriksi atau pembatasan pada ip yang dapat mengakses mysql.
perintah yang digunakan untuk memberikan akses pada semua ip
sudo ufw allow 3306
perintah yang digunakan untuk memberikan akses pada ip tertentu.
sudo ufw allow from remote_IP_address to any port 3306
kemudian pastikan user memiliki akses pada ip atau host tertentu. Gunakan perintah dibawah ini untuk memberikan kemampuan agar user tersebut dapat digunakan pada remote server / ip manapun
CREATE USER 'user'@'%' IDENTIFIED WITH mysql_native_password BY '[password_yang_akan_diset]';
ganti [password_yang_akan_diset]‘ menjadi password yang di inginkan, ganti user menjadi user yang di inginkan dan ganti % menjadi ip yang di inginkan apabila hanya memperbolehkan ip address tertentu.
kemudian berikan semua privilages untuk user tersebut
GRANT ALL PRIVILEGES ON *.* TO 'degananda'@'%' WITH GRANT OPTION;
kemudian implementasikan privilages tersebut
FLUSH PRIVILEGES;
langkah 3 – restart mysql
apabila bind_address pada mysqld.cnf dan konfigurasi firewall telah diubah agar dapat diakses oleh ip tertentu atau semua ip maka langkah terahir adalah melakukan restart pada mysql.
sudo systemctl restart mysql
done. Ingat bahwa pemberikan remote akses ini dapat memberikan isu keamanan pada server. gunakan dan atur secara bijak. lebih baik hanya memberi akses pada ip tertentu
langkah 4 – verifikasi
buka mysql workbench ataupun heidisql dan coba login dengan public ip address dari server dengan menggunakan user dan password mysql yang telah terkonfigurasi dengan host “”.
Mysql workbench- akses secara remote mysql

Heidi Sql – akses secara remote mysql
