若未开启在my.cnf文件最后添加,开启GTID(主)
# must params
server_id = 100
enforce_gtid_consistency = on
gtid_mode = on
# binlog
log_bin = mysqlbin
log_slave_updates = 1
binlog_format = row
# relay log
skip_slave_start = 1
若未开启在my.cnf文件最后添加,开启GTID(从)
需要注意的是,若配置多台MySQL从服务器,确保server_id唯一
# must params
server_id = 101
enforce_gtid_consistency = on
gtid_mode = on
# binlog
log_bin = mysqlbin
binlog_format = row
master_info_repository = TABLE
# relay log
relay_log_info_repository = TABLE
重启数据库
systemctl restart mysqld
再次确认一下是否开启成功
gtid_mode 被设置为on,即为开启成功
备份数据库
若使用的是三个数据库,数据不一样,需要进行数据的备份,导入
# 备份
mysqldump --single-transaction --master-data=2 --triggers --routines --all-databases -uroot -p > all.sql
# 导出
mysqldump -u username -p dbname > dbname.sql
# 导入
mysqldump -u username -p dbname < dbname.sql
主库创建账号
创建用于复制的账号
mysql> create user repl@'192.168.43.%' identified by '123456Gao!';
Query OK, 0 rows affected (0.01 sec)
mysql> grant replication slave on *.* to repl@'192.168.43.%';
Query OK, 0 rows affected (0.06 sec)
从库进行连接
进行数据库连接
mysql> change master to master_host = '192.168.43.54',
-> master_user = 'repl',
-> master_password = '123456Gao!',
-> master_auto_position = 1
-> ;
Query OK, 0 rows affected, 2 warnings (0.07 sec)
配置前
配置后
开启从库复制链路
start slave;
show slave status\G
确保下图红框的两个内容状态为yes,
测试
在主库创建数据库,然后从库参看是否正确同步的该数据库
# 主库创建
create table test_gtid;
# 从库查看
show databases;
测试链路
mysql -urepl -p123456Gao! -h192.168.43.54
Mysql主从同步时Slave_IO_Running:Connecting ; Slave_SQL_Running:Yes的情况故障排除