Tutorial Cara pisahkan Apache dan MariaDB pada mesin server

Memisahkan Apache dan MariaDB pada mesin server yang berbeda bertujuan agar pemakaian sumber daya (RAM, CPU, I/O) terpisah, tidak saling membebani. Pemisahan server ini dapat dilakukan dengan mengkonfigurasi MariaDB agar dapat diakses secara remote.

Tutorial ini menggunakan 
Ubuntu Server 16.04
10.0.8.38 = Apache Web Server
10.0.8.119 = MariaDB Database Server

Konfigurasi MariaDB Server

Edit file config MariaDB
  • sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
Ganti bind-address dari 127.0.0.1 menjadi IP Server MariaDB
  • bind-address = 10.0.8.119
Restart service MariaDB
  • sudo systemctl restart mysql
Membuat user agar MariaDB dapat diakses dari IP 10.0.8.38.
  • mysql -u root -p
  • CREATE USER 'webapps'@'10.0.8.38' IDENTIFIED BY 'webapps';
  • GRANT ALL PRIVILEGES ON *.* TO 'webapps'@'10.0.8.38';
  • FLUSH PRIVILEGES;

Pengujian Akses

Pengujian via MariaDB Client (Console)
Setelah melakukan konfigurasi pada MariaDB, selanjutnya melakukan pengujian mengakses MariaDB server dari mesin Apache server dengan menggunakan aplikasi mariadb-client.

Install mariadb-client
  • apt install mariadb-client
Login ke MariaDB Server

  • mysql -u webapps -h 10.0.8.119 -p

Cek status MariaDB

MariaDB [(none)]> \s
--------------
mysql  Ver 15.1 Distrib 10.0.29-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2
Connection id:          33
Current database:
Current user:           webapps@apache.lxd
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server:                 MariaDB
Server version:         10.0.29-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04
Protocol version:       10
Connection:             10.0.8.119 via TCP/IP
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8mb4
Conn.  characterset:    utf8mb4
TCP port:               3306
Uptime:                 52 sec
Threads: 2  Questions: 94  Slow queries: 0  Opens: 15  Flush tables: 1  Open tables: 78  Queries per second avg: 1.807
--------------
Bandingkan status MariaDB jika diakses langsung dari mesin servernya. Pada status Connection terlihat koneksi yang digunakan untuk mengakses MariaDB.

Pengujian via PHP

Pengujian dilakukan dengan membuat file koneksi database PHP.
Membuat file koneksi
  • nano /var/www/html/database.php 

Isinya

<?php
$hostname = "10.0.8.119";
$username = "webapps";
$password = "webapps";
$database = "mysql";
$con = new mysqli($hostname, $username, $password, $database);
if(!$con){
  echo "Database Error ".mysqli_error();
  exit;
} else {
  echo "Sukses terhubung ke database";
}
mysqli_close($con);
?>

Akses http://IP_WEB_SERVER/database.php, jika berhasil tampil pesan Sukses terhubung ke database.

phpMyAdmin

Secara default phpMyAdmin hanya untuk mengakses database MariaDB/MySQL yang berada pada server yang sama dengan web server. Agar dapat mengakses database MariaDB/MySQL secara remote yang berada pada server yang lain kita harus menambahkan konfigurasi database server.
Edit file config phpMyAdmin
  • cd /etc/phpmyadmin
  • cp config.sample.inc.php config.inc.php
  • nano config.inc.php 
Tambahkan config MariaDB server pada baris paling bawah.

  • $i++;
  • $cfg['Servers'][$i]['verbose'] = 'Server 10.0.8.119';
  • $cfg['Servers'][$i]['host'] = '10.0.8.119';
  • $cfg['Servers'][$i]['port'] = '3306';
  • $cfg['Servers'][$i]['socket'] = '';
  • $cfg['Servers'][$i]['connect_type'] = 'tcp';
  • $cfg['Servers'][$i]['extension'] = 'mysqli';
  • $cfg['Servers'][$i]['auth_type'] = 'cookie';
  • $cfg['Servers'][$i]['AllowNoPassword'] = false;

Akses http://IP_WEB_SERVER/phpmyadmin.
Ada tambahan pilihan Server Choice.
Login menggunakan user dan password yang sudah dibuat sebelumnya.

Lihat info Database server, no IP 10.0.8.119.


Sekian dari saya semoga dapat bermanfaat buat kalian semua, selamat mencoba

Subscribe to receive free email updates: