Replikasi MySQL merupakan fitur yang disediakan oleh MySQL untuk melakukan backup data secara realtime/simultan pada 2 mesin (master dan slave) yang terpasang MySQL. Namun ada harga yang harus dibayar jika kita menggunakan fitur ini, antara lain turunnya performa database (sekitar 1%) dan Anda harus siap menampung data log yang ukurannya cepat sekali membengkak.
Jika Anda siap menerima konsekuensi diatas, mari kita mulai saja implementasi Replikasi MySQL pada mesin kita.
Pada contoh berikut ini penulis melakukan pengalamatan IP komputer sbb:
- Komputer Server (master): 192.168.2.2
- Komputer Replikasi (slave): 192.168.20
- Jalankan MySQL Command Line Client dan lakukan Login
- Pada command line ketikkan perintah berikut
grant replication slave on *.* to'replikasi'@'192.168.2.20' identified by '123456';
*.* menunjukkan semua nama database MySQL
'replikasi' merupakan username yang nanti digunakan oleh komputer replikasi untuk mengakses server utama
'192.168.2.20' adalah Alamat IP komputer replikasi
'123456' merupakan password yang digunakan komputer replikasi untuk mengakses server utama
- Stop Service MySQL melalui MySQL Administrator (Service Control > Stop Service)
- Hapus file iblogfile0 dan iblogfile1 yang ada pada folder data pada direktori MySQL dan kemudian copy folder data tersebut
- Sebelum melakukan langkah berikutnya, lanjutkan terlebih dahulu proses pada komputer replikasi (slave)
- Buka file my.ini di direktori MySQL
- Tambahkan script berikut tepat dibawah [mysqld]
server-id=1
binlog-do-db=refill_mlm
log-bin=server.bin
expire-logs-days=7
- Jalankan Service MySQL kembali (Service Control > Start Service)
- Stop Service MySQL melalui MySQL Administrator (Service Control > Stop Service)
- Rename folder data pada direktori MySQL (menjadi misal data.old)
- Letakkan folder data hasil copy dari server / komputer master pada proses sebelumnya
- Buka file my.ini di direktori MySQL
- Tambahkan script berikut tepat dibawah [mysqld]
server-id=2
master-host=192.168.2.2
master-port=3306
master-user=replikasi
master-password=123456
master-connect-retry=60
relay-log=WEBSERVER-relay-bin
read-only
replicate-ignore-table=refill_mlm.sms_history
replicate-ignore-table=refill_mlm.sms_inbox
replicate-ignore-table=refill_mlm.sms_outbox
replicate-ignore-table=refill_mlm.log_saldo
replicate-ignore-table=refill_mlm.logs
master-host adalah alamat IP server
replicate-ignore-table adalah table-table yang tidak ikut direplikasi
- Sebelum melakukan langkah selanjutnya (menjalankan Service MySQL pada komputer replikasi), selesaikan terlebih dahulu proses pada komputer server (master)
- Jalankan Service MySQL kembali (Service Control > Start Service)