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:
- IP_address: 10.87.0.1 untuk database server Mysql
- IP_address: 10.87.0.2 untuk web server (apache atau PHP)
Table of Contents
Tahap 1: Install mysql server
Install database server mysql di IP_address: 10.87.0.1 untuk Panduan lengkap baca:
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
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';