mysql AB復制 MS復制
註意:主從服務器都需要關閉防火墻。
主服務器:
修改mysql配置文件,永久產生日誌
#vim /etc/my.cnf
log-bin='masterlog'
server-id=1
創建賬戶:
mysql>grant replication slave,reload,super on *.* to 'slave'@'%' identified by '123';
mysql>flushreplication slave;
replication slave:
擁有此權限可以查看從服務器,從主服務器讀取二進制日誌。
super權限:
允許用戶使用修改全局變量的SET語句以及CHANGE MASTER語句
reload權限:
必須擁有reload權限,才可以執行flush [tables | logs | privileges] privileges;
slave:用戶名,可以自己本身定義
%:工作環境中,一般寫從服務器的ip,或者做了本地解析之後,直接寫域名。
#systemctl restart mysqld
從服務器:
修改mysql配置文件:
#vim /etc/my.cnf
[mysqld]
server-id=2
log-bin=slavelog //寫不寫看需求(雙主的時候必須寫,使用gtid復制方式必須寫)
#systemctl restart mysqld
指定主服務器信息
mysql>help change master to
mysql>CHANGE MASTER TO
MASTER_HOST='master2.example.com', //主服務器ip
MASTER_USER='replication', //主服務器用戶
MASTER_PORT=3306, //端口
MASTER_LOG_FILE='master2-bin.001', //binlog日誌文件名稱
MASTER_LOG_POS=4, //日誌位置
MASTER_CONNECT_RETRY=10; //如果同步失敗的嘗試次數
mysql>start slave;
mysql>show slave status\G
同步完成之後,進行測試,如果沒有成功,刪除從binlog日誌,重啟服務
但是此方法,需要指定主配置文件的日誌名稱,日誌位置,比較繁瑣。
可以采用gtid方式,讓其自動尋找同步點:
需要在主從服務器配置文件中開啟gtid功能:
主動配置都需要添加:
#vim /etc/my.cnf
gtid_mode=on
enforce_gtid_consistency=1
從服務器只需要以下配置:
mysql>CHANGE MASTER TO
MASTER_HOST='master2.example.com', //主服務器ip
MASTER_USER='replication', //主服務器用戶
MASTER_PASSWORD='password', //用戶密碼
MASTER_PORT=3306, //端口
MASTER_AUTO_POSITION=1
完成以後,進行測試,如果不能同步,刪除從服務器的binlog,重啟服務。
mysql AB復制 MS復制