Replikasi Two-Way MySQL Pada Sistem Operasi Windows

Misalkan ada 2 buah komputer, Komputer 1 bertindak sebagai server A dan komputer 2 sebagai server B. Server A memiliki ip address 192.198.12.1 dan server B 192.168.12.2, kemudian tes koneksinya dan apabila berhasil lanjutkan dengan melakukan langkah - langkah berikut :

1. Konfigurasi Server A

  • Buka file my.ini, yang terdapat pada C:\Program Files\MySQL\MySQL Server
  • Pada file my.ini, cari baris bertuliskan [mysqld], kemudian ketikan teks berikut di bawahnya
server-id = 1
replicate-same-server-id = 0
auto-increment-increment = 2
auto-increment-offset = 1

master-host = 192.168.12.2
master-user =b
master-password = sembarang
master-connect-retry = 60
replicate-do-db = replikasi_db
log-bin = mysql-bin
binlog-do-db = replikasi_db

--- Penjelasan
- 192.168.12.2 merupakan IP address dari server B
- (b) merupakan username server B yang akan mendapatkan hak untuk replikasi pada server A
- (sembarang) merupakan password dari username b
-  replikasi_db merupakan nama database yang akan direplikasi

  •  Restart MySQL, bisa dilakukan pada services.msc
  •  Masuk CMD kemudian ketikkan mysql -u root -p 
  •  Berikan hak akses pada server B dengan mengetikkan  grant replication slave on *.* to b@192.168.12.2 identified by 'sembarang';
  • Kemudian ketikkan perintah - perintah berikut :
- flush privileges;
- use replikasi_db;
- flush tables with read lock; 
- show master status;
 catat (mysql-bin.0000xx) dan Posisiton (xx), karena digunakan pada konfigurasi selanjutnya
- unlock tables;

2. Konvigurasi Server B
  • Buka file my.ini, yang terdapat pada C:\Program Files\MySQL\MySQL Server
  • Pada file my.ini, cari baris bertuliskan [mysqld], kemudian ketikan teks berikut di bawahnya

server-id = 2
replicate-same-server-id = 0
auto-increment-increment = 2
auto-increment-offset = 2

master-host = 192.168.12.1
master-user = a
master-password = sembarangjuga
master-connect-retry = 60
replicate-do-db = replikasi_db
log-bin =mysql-bin
binlog-do-db = replikasi_db




--- Penjelasan
- 192.168.12.1 merupakan  ip address server A
- (a) merupakan  username server A yang akan mendapatkan hak untuk replikasi pada server B
sembarangjuga merupakan password dari username server A
-  replikasi_db merupakan nama database yang akan direplikasi
  •  Restart MySQL, bisa dilakukan pada services.msc
  • Masuk CMD kemudian dan login ke MySql
  • Berikan hak akses pada server A dengan mengetikkan grant replication slave on *.* to a@192.168.12.1 identified by 'sembarangjuga';
  • Kemudian ketikkan perintah - perintah berikut :
- flush privileges;
- use replikasi_db; 
- flush tables with read lock;
- show master status;
   catat (mysql-bin.0000xx) dan Posisiton (xx), karena akan digunakan pada konfigurasi selanjutnya
- unlock tables;


3. Kembali Melakukan Konfigurasi Pada Server A
  •  Masuk ke CMD dan login ke MySQL dengan mengetikkan perintah  mysql –u root –p
  •  ketikkan perintah - perintah berikut :
- stop slave;

- CHANGE MASTER TO MASTER_HOST='192.168.12.2',
   MASTER_USER='a',
   MASTER_PASSWORD='sembarangjuga',
   MASTER_LOG_FILE='mysql-bin.0000xx',
   MASTER_LOG_POS=xx;


- start slave;
- show slave status\G

        Catatan :
^ Pastikan  Slave_IO_RUNNING dan Slave_SQL_Running bernilai Yes. Bila salah satu ada yang bernilai No, maka replikasi belum berhasil.

4. Kembali Melakukan Konfigurasi Pada Server A
  •  Masuk CMD dan login ke MySQL
  •  Jalankan perintah - perintah berikut :
stop slave;
-  CHANGE MASTER TO MASTER_HOST='192.168.12.1',
    MASTER_USER='a',
    MASTER_PASSWORD='sembarangjuga',
    MASTER_LOG_FILE='mysql-bin.0000xx',
    MASTER_LOG_POS=xx;


- start slave;
- show slave status\G

        Catatan :
^ Pastikan bahwa Slave_IO_RUNNING dan Slave_SQL_Running mempunyai nilai Yes. Bila salah satu ada yang bernilai No, maka replikasi belum berhasil.

4 komentar:

ilyas Abas mengatakan...

IO Running saya msih bernilai No padahal sdh coba semua konfigurasinya
Saya pake Xampp versi 1.8xx
Mohon pencerahannya

ilyas Abas mengatakan...

IO Running saya msih bernilai No padahal sdh coba semua konfigurasinya
Saya pake Xampp versi 1.8xx
Mohon pencerahannya

adi r mengatakan...

Catatan :
1. Pastikan Iptablesnya mati / bisa akses ke server masing2
‘mysql -u root -p —host=10.10.51.204 —port=3306’ atau sebaliknya
2. Pastikan sudah menambahkan user dan bisa masuk ke server mysql secara remote
‘GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ IDENTIFIED BY ‘passDB’ WITH GRANT OPTION;’
3. Pastikan Jangan membuat DB yang akan direplika terlebih dahulu sebelum status slavenya normal.

Unknown mengatakan...

Thx, sangat bagus dan sangat membantu, apakah bisa di sett supaya sync pd saat kita mau saja?, Misal kt tekan tombol tertentu maka br bisa sync?