Anggri Yulio P
Web Developer, sekarang mulai jatuh hati pada Computer Vision.
December 17, 2017 4:35 am

Konfigurasi Replikasi Master-Slave MySQL

Replikasi MySQL (MySQL Replication) memungkinkan kita membuat salinan dari database secara realtime dari database master ke slave. Tujuan utama replikasi database adalah untuk melakukan backup dari database master, penggunakan database replikasi sangat bermanfaat jika kita melakukan analisa database, karena kita tidak perlu menyentuh database master secara langsung, sehingga jika terjadi suatu kesalahan tentunya tidak akan mempengaruhi database master.

Disini kita akan membangun replikasi database dengan model Master – Slave. Sistem yang saya gunakan pada tutorial ini adalah :

Master :

IP Address 192.168.10.10
Sistem Operasi Windows 7
Database site

Slave:

IP Address 192.168.10.20
Sistem Operasi Ubuntu 16.04
Database site

Konfigurasi Master

Membuat Database Master

Konfigurasi MySQL

Kita perlu melakukan beberapa perubahan pada file konfigurasi MySQL my.cnf seperti berikut:

bind-address =0.0.0.0
log-bin =mysql-bin
binlog_do_db =site
server-id =1

Note :
Untuk server produksi bind address sebaiknya menggunakan IP Address server.

Buat User Baru Pada Master

Dump Database

Dump database yang nantinya akan kita import ke database slave, sebelumnya kita harus mengunci database untuk mencegah terjadinya perubahan data untuk sementara.

Simpan informasi diatas untuk konfigurasi pada database slave. Setelah mengunci database selanjutnya dump database.

Izinkan kembali perubahan pada database master. Masuk ke mysql console, jalankan :

Untuk konfigurasi pada database master telah selesai, kita lanjutkan konfigurasi pada database slave.

 

Konfigurasi pada Slave
Buat Database

Import database site yang sebelumnya telah kita dump ke dalam database site pada slave.

Konfigurasi MySQL pada Slave

Lokasi file konfigurasi mysql bisa berbeda untuk setiap sistem operasi atau versi mysql. Sesuaikan dengan sistem yang kita gunakan. Pada ubuntu 16.04 file konfigurasi mysql terletak di  /etc/mysql/my.cnf , sesuaikan konfigurasi seperti dibawah:

log-bin =/var/log/mysql/mysql-bin.log
binlog_do_db =site
server-id =2

 

Mulai ulang service mysql dengan perintah sudo service mysql restart . Kemudian masuk kembali ke mysql console dan jalankan perintah dibawah

Sesuaikan perintah diatas dengan informasi yang kita dapatkan sebelumnya dari perintah SHOW MASTER STATUS pada database master.

  • MASTER_HOST merupakan IP address server master
  • MASTER_USER user yang telah kita buat sebelumnya pada database master
  • MASTER_PASSWORD password user pada tabel master
  • MASTER_LOG_FILE nama file log-bin (dari SHOW MASTER STATUS)
  • MASTER_LOG_POS posisi dimulainya replikasi (dari SHOW MASTER STATUS)

Sejauh ini kita telah selesai mengkonfigurasi database master dan slave, jalankan database slave :

Selesai, sekarang coba lakukan proses CRUD pada master. Jika tidak ada kesalahan dan semua tahapan telah dilakukan dengan benar, maka setiap proses CRUD yang terjadi pada database master akan secara otomatis masuk ke database slave.

%d bloggers like this: