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 batasan IP:

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

Atau bisa tambah user baru tanpa batasan Any IP:

CREATE USER 'user_baru'@'%' 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.

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

atau bisa jika ingin full Any IP akses bisa hapus Bind-Adress (kasih kome # awal kata)

# bind-address = 0.0.0.0

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

sudo systemctl restart mysql

READ :  Rahasia Menulis Artikel Blog Berkualitas SEO Friendly. Bongkar Triknya Di Sini

 

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

Atau bisa izinkan akses dari alamat Any IP:

sudo ufw allow 3306

Test Mysql & koneksi remote

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

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