2017年3月22日 星期三

Mysql 5.7.16 replication

#打#號之註解為原先已經有設定故註記起來。

[Master]

vim /etc/my.cnf
#======
[mysqld]
bind-address=10.10.0.1
server-id=1
binlog-ignore-db = "mysql"
binlog-format = mixed
log-bin=mysql-bin
#datadir=/var/lib/mysql
#innodb_flush_log_at_trx_commit=1
sync_binlog=1


#====
systemctl restart mysqld
#====

建立一個用作同步的帳號, 以下會建立帳號 replication, 密碼是 P@ssw0rd, Slave 的 ip 為10.10.0.2

CREATE USER replication@10.10.0.2;
GRANT REPLICATION SLAVE ON *.* TO replication@10.10.0.2 IDENTIFIED BY 'P@ssw0rd';

flush privileges;

SHOW MASTER STATUS;
exit;

#========================
然後要用 mysqldump 匯出資料庫的 .sql 檔, 要放到 Slave 匯入:

mysqldump –skip-lock-tables –all-databases –user=root –password –master-data > masterdatabase.sql

#========================
[Slave]
#=======
[mysqld]
server-id=2
binlog-format=mixed
log_bin=mysql-bin
relay-log=mysql-relay-bin
log-slave-updates=1
read-only=1
#====
systemctl restart mysqld
#====

用 root 登入 MySQL, 建立資料庫

create database database-name;
exit;

#============
設定SLAVE
#===========


MariaDB> CHANGE MASTER TO MASTER_HOST='10.10.0.1',MASTER_USER='replication',MASTER_PASSWORD='P@ssw0rd', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=500;
MariaDB> START SLAVE;
MariaDB> SHOW SLAVE STATUS \G;


現在 Slave 已經可以同步, 要查詢 Slave 的狀態, 可以登入 MySQL 用以下指令檢查:

START SLAVE;
SHOW SLAVE STATUS \G;

=====================

沒有留言:

張貼留言