Cara Mengizinkan Akses Jarak Jauh ke MySQL

Pendahuluan

Sebagian dari website dan aplikasi biasanya memulai sistem operasinya dengan server web dan database backend yang berada di mesin yang sama. Namun, seiring berjalannya waktu, konfigurasi ini menjadi kurang efisien dan sulit untuk ditingkatkan.  Salah satu masalah umum adalah konfigurasi default MySQL yang hanya terkoneksi lokal. Oleh karena itu perlu untuk mengaktifkan koneksi jarak jauh, Anda harus mengkonfigurasi MySQL agar mendengarkan koneksi dari alamat IP eksternal. Simak Cara Mengizinkan Akses Jarak Jauh ke MySQL dibawah ini!

Langkah-Langkah Mengaktifkan Akses Jarak Jauh ke MySQL

Edit File Konfigurasi MySQL

1. Buka File Konfigurasi

Pertama, buka file konfigurasi MySQL menggunakan editor teks, seperti nano:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

2. Cari Bind-Address

Cari baris yang dimulai dengan bind-address. Biasanya terlihat seperti ini:

bind-address = 127.0.0.1
Nilai 127.0.0.1 berarti MySQL hanya mendengarkan koneksi lokal.

3. Ubah Nilai Bind-Address

Ubah nilai bind-address menjadi 0.0.0.0 untuk memungkinkan koneksi dari semua alamat IP:

bind-address = 0.0.0.0

Jika baris bind-address tidak ada, tambahkan baris berikut di bawah bagian [mysqld]:

bind-address = 0.0.0.0

4. Simpan dan Tutup

Setelah itu, Anda harus Simpan dan tutup file dengan (tekan CTRL + X, lalu Y, dan tekan ENTER).

5. Restrat Layanan

Restart layanan MySQL agar perubahan berlaku seperti kode berikut:

sudo systemctl restart mysql

Konfigurasi Akun Pengguna MySQL

Jika Anda ingin menggunakan akun MySQL yang ada untuk koneksi jarak jauh:

1. Login ke MySQL

Masuk ke MySQL menggunakan akun root:

sudo mysql

Jika root memiliki autentikasi kata sandi:

mysql -u root -p

2. Ubah Konfigurasi Akun

Ubah konfigurasi host akun pengguna. Misalnya, ubah pengguna sammy agar dapat terhubung dari IP jarak jauh:

RENAME USER 'sammy'@'localhost' TO 'sammy'@'remote_server_ip';

Atau buat akun baru untuk akses jarak jauh:

CREATE USER 'sammy'@'remote_server_ip' IDENTIFIED BY 'password';

Jika Anda menggunakan aplikasi berbasis PHP, gunakan plugin autentikasi mysql_native_password:

CREATE USER 'sammy'@'remote_server_ip' IDENTIFIED WITH mysql_native_password BY 'password';

3. Beri Akses

Berikan hak akses kepada pengguna:

GRANT ALL PRIVILEGES ON *.* TO 'sammy'@'remote_server_ip' WITH GRANT OPTION;

4. Lakukan Perubahan

Terapkan perubahan dengan perintah:

FLUSH PRIVILEGES;

5. Progress Selesai

Setelah berhasil , keluar dari MySQL:

exit

Konfigurasikan Firewall

1. Lakukan konfigurasi firewall

Jika Anda menggunakan firewall, buka port MySQL default (3306) untuk mengizinkan koneksi:

sudo ufw allow from remote_IP_address to any port 3306

2. Ubah IP

Ganti remote_IP_address dengan IP klien yang ingin Anda izinkan.

Jika Anda ingin mengizinkan semua IP untuk mengakses MySQL (tidak disarankan):

sudo ufw allow 3306

Verifikasi Koneksi Jarak Jauh

Coba akses database dari mesin lain menggunakan perintah berikut:

mysql -u user -h database_server_ip -p
  • user: Nama pengguna MySQL.
  • database_server_ip: Alamat IP server MySQL.

Jika Anda dapat terhubung, artinya konfigurasi berhasil. Namun, menggunakan

bind-address = 0.0.0.0

dianggap tidak aman karena memungkinkan koneksi dari semua IP. Sebaiknya gunakan pengaturan lebih spesifik untuk meningkatkan keamanan.

Catatan Penting

  1. Hindari mengizinkan akses dari semua IP jika database menyimpan data sensitif.

Penutup

Dengan mengikuti panduan ini, Anda dapat mengaktifkan akses jarak jauh ke MySQL dengan aman dan efisien, memungkinkan adanya pemisahan antara server aplikasi dan database untuk mendukung skalabilitas yang lebih baik. Untuk solusi yang lebih praktis, Anda juga dapat menggunakan Managed Database IDCloudHost, yang menawarkan pengelolaan database otomatis, peningkatan keamanan, dan skalabilitas tanpa repot. Dengan ini, Anda bisa fokus pada pengembangan aplikasi tanpa harus khawatir tentang pengaturan server database.