Bagaimana cara membuat Master Server?
TI
vianoaprilyoaroxia6j
Pertanyaan
Bagaimana cara membuat Master Server?
1 Jawaban
-
1. Jawaban Nabil1905
Edit file konfigurasi mysql
$sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf atau untuk versi yang lama
$sudo nano /etc/mysql/my.cnf
Edit/tambahkan baris berikut di file konfirgurasi
bind-address = 192.168.1.1 atau * (address server master)
server-id = 1
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = database1 (database yg mau direplikasi)
Kalau mau lebih dari satu database tinggal tambahkan baris lagi
binlog_do_db = database2
binlog_do_db = database3 dst
binlog_ignore_db = database4 (database yg tdk ikut direplikasi)
Refresh database mysql $sudo service mysql restart
Login ke Mysql
#mysql -u root -p
mysql>GRANT REPLICATION SLAVE ON *.* TO 'slave_user'@'%'
IDENTIFIED BY 'password'; (buat user replikasi)
mysql>FLUSH PRIVILEGES;
mysql>USE database1;
mysql>FLUSH TABLES WITH READ LOCK;
mysql>SHOW MASTER STATUS;
Akan keluar tampilan seperti berikut
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 107 | database1 | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
Catat File dan Position yang akan digunakan di SERVER SLAVE
(contoh disini mysql-bin.000001 dan 107)
Backup database yang akan direplikasi untuk diinstal di SERVER SLAVE
#mysqldump -u root -p --opt database1 > database1.sql
Unlock Tabel
mysql>UNLOCK TABLES;
mysql>QUIT;
Langkah di SERVER MASTER sudah selesai, lanjut ke SERVER SLAVE
SERVER SLAVE
Buat database yang akan direplikasi di MySQL
#mysql -uroot -p
mysql>CREATE DATABASE database1;
Import struktur database yang sudah dilakukan di server master sebelumnya
#mysql -u root -p database1 < /path/to/database1.sql
Edit file konfigurasi MySQL
$sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Edit/tambah file konfigurasi mysql
server-id = 2 (nomor harus beda dari Server Master)
relay-log = /var/log/mysql/mysql-relay-bin.log
log_bin = /var/log/mysql/mysql-bin.log
binlog_do_db = database1 (list database yg direplikasi)
Restart MySQL
$sudo service mysql restart
Buka MySQL
#mysql -u root -p
mysql>CHANGE MASTER TO MASTER_HOST='12.34.56.789',
MASTER_USER='slave_user',
MASTER_PASSWORD='password',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS= 107; (master log & master pos disesuaikan)
Start Slave
mysql>START SLAVE;
mysql>SHOW SLAVE STATUS\G
Jika ada masalah saat koneksi bisa ditambah perintah berikut
mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
mysql>SLAVE START;