1. 程式人生 > >mysql AB復制 MS復制

mysql AB復制 MS復制

以及 table gtid_mode for 雙主 復制 同步 只需要 rep

AB復制:主服務器通過修改mysql配置文件,搭建同步環境,使從服務器能夠同步主服務器的數據庫。

註意:主從服務器都需要關閉防火墻。

主服務器:

修改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_PASSWORD='password', //用戶密碼
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復制