Cara membuat Mysql Server Remote IP (Terpisah) VPS

Panduan seting server VPS menggunakan OS linux dengan cara server database dan server web terpisah sehingga memiliki performa lebih optimal dari masing2 server.

Keunggulan:

  • Beban server akan lebih ringan karena secara umum database paling banyak menggunakan sumber daya seperti CPU, RAM dan IO.
  • Mudah dalam maintenance dan perawatan karena semua tersusun rapi, jelas setiap VPS masing2,
  • Lebih aman karena edit database bisa menggunakan aplikasi pihak ke 3 tanpa harus masuk ke server utama.

Buat server VPS 2 unit untuk masing2:

  1. IP_address: 10.87.0.1 untuk database server Mysql
  2. IP_address: 10.87.0.2 untuk web server (apache atau PHP)

 

Tahap 1: Install mysql server

Install database server mysql di IP_address: 10.87.0.1 untuk Panduan lengkap baca:

MYSQL : Install, setup database di linux Server (VPS)

Tambahan:

Karena akses remote maka tambah user baru:

CREATE USER 'user_baru'@'10.87.0.2' IDENTIFIED WITH 
mysql_native_password BY 'password_baru';

Seting akses:

GRANT ALL PRIVILEGES ON *.* TO 'user_baru'@'10.87.0.2' 
WITH GRANT OPTION;

Jangan lupa reload mysql sehingga perubahan setingan akan ditetapkan dengan kode:

FLUSH PRIVILEGES;

 

Tahap 2: Setting bind-address

Lokasi file konfigurasi MySQL berbeda tergantung pada distribusinya. Di Ubuntu dan Debian file tersebut terletak di /etc/mysql/mysql.conf.d/mysqld.cnf, sedangkan di distribusi berbasis Red Hat seperti CentOS, file tersebut berada di /etc/my.cnf.

Buka file dengan teks editor Anda:

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

Cari baris yang dimulai dengan bind-address dan atur nilainya ke alamat IP yang remote oleh MySQL server.

READ :  Cek, Meningkatkan Nilai DA & PA Blog 100% WORK

Secara default, nilainya diatur ke 127.0.0.1 (hanya dilocalhost).

Mengatur MySQL server untuk bisa remote pada semua interface IP_server dengan mengubah nilainya menjadi 0.0.0.0

bind-address           = 0.0.0.0
# skip-networking

Setelah selesai, restart layanan MySQL agar perubahan diterapkan. MySQL service pada Debian atau Ubuntu, ketik:

sudo systemctl restart mysql

 

Seting Firewall Port 3306

Langkah terakhir adalah mengonfigurasi firewall pada 10.87.0.1 untuk memungkinkan lalu lintas di port 3306 (port default MySQL) dari mesin jarak jauh (remote).

UFW adalah tool firewall default di Ubuntu. Untuk mengizinkan akses dari alamat IP apa pun di Internet (sangat tidak aman) jalankan

Izinkan akses dari alamat IP tertentu:

sudo ufw allow from 10.87.0.2 to any port 3306

 

Test Mysql & koneksi remote

  • Masuk mysql remote > masukan password:
mysql -u username -h 10.87.0.2 -p

  • Test koneksi mysql remote:
$host: '10.87.0.1'; // bedanya disini localhost diganti IP_address Mysql
$username: 'user';
$password='pass_kamu';

Updated: September 16, 2023