Mysql Replication
6 August 2008
Tujuan replikasi adalah untuk membuat backup server database, namun bedanya dengan backup manual maupun terjadwal (schedule) adalah jika backup manual akan menyimpan data pada waktu tertentu sedangkan pada replikasi server slave akan mengamati setiap perubahan pada master dan langsung mengupdate jika terjadi perubahan. Berikut contoh implementasinya:
Master : 192.168.254.122
Mysql Version: Mysql 5.0.44sp1
- Buka file my.ini di folder installasi Mysql dan tambahkan di bawah [mysqld]:
log-bin=mysql-bin
server-id=1
innodb_flush_log_at_trx_commit=1
sync_binlog=1
- Save file dan Restart mysql (control panel -> administrative tools -> services -> mysql -> restart )
- Buat User MySQL pada server master yang memiliki privilege/hak ‘REPLICATION SLAVE’, contoh:
mysql –u root
mysql> USE mysql;
mysql> CREATE USER ‘replikator’@ ‘%’ IDENTIFIED BY ‘1234’;
mysql> GRANT REPLICATION SLAVE ON *.* TO ‘replikator’@’%’ IDENTIFIED BY ‘1234’;
- Lakukan perintah berikut:
mysql> FLUSH TABLES WITH READ LOCK;
mysql> SHOW MASTER STATUS;
Catat nama log_file dan log_pos pada master status. (misal: log_file => mysql-bin.000001 dan log_pos => 273)
mysql> UNLOCK TABLES;
Slave : 192.168.254.53
Mysql Version: Mysql 5.0.51b
- Buka file my.ini di folder installasi Mysql dan tambahkan di bawah [mysqld]:
server-id=2
- Save file dan Restart mysql (control panel -> administrative tools -> services -> mysql -> restart )
- Lakukan perintah berikut:
mysql> STOP SLAVE;
mysql> CHANGE MASTER TO
MASTER_HOST=’192.168.254.122’,
MASTER_USER=’replikator’,
MASTER_PASSWORD=’1234’,
MASTER_PORT=3306,
MASTER_LOG_FILE=’mysql-bin.000001?,
MASTER_LOG_POS=273,
MASTER_CONNECT_RETRY=10;
mysql> START SLAVE;
- Cek pada log slave untuk meyakinkan konfigurasi telah benar, bias menggunakan tools Mysql Administrator dan pilih menu server logs -> Refresh dan lihat di baris paling bawah aka nada Note seperti ini:
080805 18:34:22 [Note] Slave I/O thread: connected to master ‘replikator@192.168.254.53:3306′, replication started in log ‘mysql-bin.000001′ at position 273
sumber: http://dev.mysql.com/doc/refman/5.0/en/replication-howto-newservers.html