Pengantar

Secara default, MySQL hanya menerima koneksi dari localhost. Agar dapat diakses dari komputer lain (misalnya melalui DBeaver), anda perlu:

  1. Konfigurasi MySQL agar menerima koneksi remote
  2. Memberi izin user untuk koneksi dari luar
  3. Buka port 3306 di firewall

Langkah-Langkah Enable Remote MySQL Access

  1. Edit Konfigurasi MySQL agar Bind ke Semua IP
    Buka file konfigurasi MySQL
    sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
    Ganti bagian bind-address menjadi 0.0.0.0 , ini membuat MySQL dapat diakses dari semua alamat IP

    Tekan Ctrl+X dan klik Y untuk menyimpan konfigurasi
  2. Beri Akses Remote untuk User MySQL
    Masuk ke MySQL 
    sudo mysql -u root -p

    Buat user baru

    CREATE USER 'username'@'IP_address' IDENTIFIED BY 'passwordmu';
    

    Jalankan command line berikut untuk memberi akses kepada user agar bisa diakses secara remote, ganti nama_user, nama_db, dan alamat_ip_client sesuai dengan data anda 

    GRANT ALL PRIVILEGES ON nama_db.* TO 'nama_user'@'ip_client';

    Atau jika anda ingin mengizinkan akses dari semua IP bisa gunakan command line berikut

    GRANT ALL PRIVILEGES ON nama_db.* TO 'nama_user'@'%' ;

    Lalu jalankan 

    FLUSH PRIVILEGES;
  3. Restart MySQL
    sudo systemctl restart mysql
  4. Buka Port 3306 di Firewall (Jika Aktif)
    sudo ufw allow 3306
    
    Atau jika anda menggunakan CSF anda bisa mengatur Port anda di 
    nano /etc/csf/csf.conf

    Setelah setting firewall selesai, anda harus merestart firewall anda

  5. Uji Koneksi dari DBeaver
    1. Buka DBeaver, klik New Database Connection, pilih MySQL

    2. Masukan 
      1. Host: IP VPS Anda
      2. Port: 3306
      3. Database: Nama database yang mau anda akses
      4. User dan Password sesuai yang tadi sudah dibuat
      5. Klik Test Connection

    3. Jika muncul popup seperti gambar dibawah, klik download, karena itu merupakan drive yang dibutuhkan DBeaver untuk bisa mengakses MySQL secara remote

    4. Selesai 
      Berikut adalah tampilan anda bisa mengakses database MySQL secara remote

Tips Tambahan

  1. Jika anda mengalami error 
    Public Key Retrieval is not allowed

    Ini artinya Anda mencoba login dengan user yang pakai plugin autentikasi caching_sha2_password (default di MySQL 8), tapi koneksi DBeaver tidak diizinkan mengambil public key dari server

    Anda bisa melakukan edit konfigurasi di DBeaver
    Buka Edit Connection, Masuk ke tab Driver Properties, cari allowPublicKeyRetrieval ganti valuenya menjadi true

Kesimpulan

Dengan mengubah bind address MySQL, membuat user yang diizinkan akses dari luar, membuka port 3306 di firewall, dan mengatur DBeaver dengan benar, anda bisa mengakses database MySQL secara remote dengan aman dan lancar.