Pengantar
Secara default, MySQL hanya menerima koneksi dari localhost. Agar dapat diakses dari komputer lain (misalnya melalui DBeaver), anda perlu:
- Konfigurasi MySQL agar menerima koneksi remote
- Memberi izin user untuk koneksi dari luar
- Buka port 3306 di firewall
Langkah-Langkah Enable Remote MySQL Access
- Edit Konfigurasi MySQL agar Bind ke Semua IP
Buka file konfigurasi MySQL
Ganti bagian bind-address menjadi 0.0.0.0 , ini membuat MySQL dapat diakses dari semua alamat IPsudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Tekan Ctrl+X dan klik Y untuk menyimpan konfigurasi - 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;
- Restart MySQL
sudo systemctl restart mysql
- Buka Port 3306 di Firewall (Jika Aktif)
Atau jika anda menggunakan CSF anda bisa mengatur Port anda disudo ufw allow 3306
nano /etc/csf/csf.conf
Setelah setting firewall selesai, anda harus merestart firewall anda
- Uji Koneksi dari DBeaver
- Buka DBeaver, klik New Database Connection, pilih MySQL
- Masukan
- Host: IP VPS Anda
- Port: 3306
- Database: Nama database yang mau anda akses
- User dan Password sesuai yang tadi sudah dibuat
- Klik Test Connection
- Jika muncul popup seperti gambar dibawah, klik download, karena itu merupakan drive yang dibutuhkan DBeaver untuk bisa mengakses MySQL secara remote
- Selesai
Berikut adalah tampilan anda bisa mengakses database MySQL secara remote
- Buka DBeaver, klik New Database Connection, pilih MySQL
Tips Tambahan
- 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.