master:172.16.1.233
slave:172.16.1.234
1.修改配置文件
master
vim /etc/my.cnf
[mysqld]
log_bin = mysql-bin
log_slave_updates
loose_gtid_mode = ON
loose_enforce_gtid_consistency
server_id = 1
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
slave
[mysqld]
log_bin = mysql-bin
log_slave_updates
loose_gtid_mode = ON
loose_enforce_gtid_consistency
server_id = 2
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
在master上执行以下命令,创建用于主从复制的用户:
CREATE USER 'repl'@'172.16.%' IDENTIFIED BY 'kingc';
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'172.16.%';
2.主备配置
2.1同步服务器
在master和slave上都执行以下命令,使服务器只读:
mysql> SET @@global.read_only = ON;
2.2停止服务器
在master和slave上都执行以下命令,停止MySQL:
shell> mysqladmin -uusername -ppassword shutdown
注:username和password换成你自己MySQL的用户名和密码
2.3重启服务器
在master和slave上都执行以下命令(开启GTID
),重启服务器:
shell> mysqld_safe --gtid_mode=ON --log-bin --log-slave-updates --enforce-gtid-consistency &
2.4让slave指向master
在slave上执行:
mysql> CHANGE MASTER TO
MASTER_HOST='172.16.1.233',
MASTER_PORT = 3306,
MASTER_USER='repl',
MASTER_PASSWORD='kingc',
MASTER_AUTO_POSITION = 1;
mysql> START SLAVE;
2.5禁用只读模式
在master和slave上都执行以下命令:mysql> SET @@global.read_only = OFF;
3.验证
mysql> show slave status\G;
在master上进行增删改操作,发现slave也有同步