赞
踩
- MySQL5.6往后版本支持的新特性
- GTID Global Transaction Identified
- 全局事务ID
- GTID构成
- server_uuid+事务ID
- 在配置主从的时候不再需要自行去找二进制日志文件位置
环境描述
192.168.152.12 Master服务器
192.168.152.13 Slave服务器
1、在服务器安装MySQL8.0,导入jiaowu.sql
[root@master ~]# systemctl start mysqld
[root@master ~]# systemctl enable mysqld
[root@master ~]# mysql -uroot -pWWW.1.com < jiaowu.sql
2、完全备份数据库,发送给从服务器
[root@master ~]# mysqldump -uroot -pWWW.1.com --lock-all-tables --master-data=2 --all-databases > /tmp/all.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.
[root@master ~]# rsync -av /tmp/all.sql root@192.168.152.13:/tmp/
3、修改配置文件,启用gtid特性
[root@master ~]# vim /etc/my.cnf
[mysqld]
server_id=10
log_bin=master
gtid_mode=on //启用gtid
enforce_gtid_consistency=true //强制gtid一致性
4、在主服务器创建从服务器登录用户,为用户授权,刷新
mysql> create user 'ljh1'@'192.168.152.13' identified by "WWW.1.com";
Query OK, 0 rows affected (0.01 sec)
mysql> grant replication slave on *.* to "ljh1"@"192.168.152.13";
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
5、配置从服务器配置文件,重启
[root@slave ~]# vim /etc/my.cnf
[mysqld]
server_id=11
log_bin=slave
gtid_mode=on
enforce_gtid_consistency=true
6、在从服务器恢复主服务器内容,开机自启数据库,连接主服务器获取密钥(8.0新特性)
[root@slave ~]# mysql -uroot -pWWW.1.com < /tmp/data.sql
[root@localhost ~]# mysql -u ljh1 -pWWW.1.com -h 192.168.152.12 --get-server-public-key
5、连接Master服务器
mysql> CHANGE MASTER TO
-> MASTER_HOST="192.168.152.12",
-> MASTER_USER="ljh1",
-> MASTER_PASSWORD="WWW.1.com",
-> MASTER_AUTO_POSITION=1;
Query OK, 0 rows affected, 7 warnings (0.01 sec)
mysql> stop slave;
mysql> start slave;
6、测试即可
- MySQL5.7以后支持的
- 支持多个服务器向同一个从服务器复制数据
- 通过channel隧道来标识不同的主服务器
- 要将master.info和relay_log.info这两个文件以表的形式放到数据库中
mysql> create user 'ljh14'@'192.168.152.14' identified by "WWW.1.com";
Query OK, 0 rows affected (0.01 sec)
mysql> grant replication slave on *.* to 'ljh14'@'192.168.152.14';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
mysql> create user 'ljh15'@'192.168.152.14' identified by "WWW.1.com";
Query OK, 0 rows affected (0.01 sec)
mysql> grant replication slave on *.* to 'ljh15'@'192.168.152.14';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)
[mysqld]
server_id=14
log_bin=master
gtid_mode=on
enforce_gtid_consistency=true
master_info_repository=TABLE
relay_log_info_repository=TABLE
[root@localhost ~]# mysql -uljh14 -pWWW.1.com -h 192.168.152.12 --get-server-public-key
[root@localhost ~]# mysql -uljh15 -pWWW.1.com -h 192.168.152.13 --get-server-public-key
mysql> change master to -> master_host="192.168.152.12", -> master_user="ljh14", -> master_password="WWW.1.com", -> master_auto_position=1 for channel "to_master01"; Query OK, 0 rows affected, 7 warnings (0.01 sec) mysql> change master to -> master_host="192.168.152.13", -> master_user="ljh14", -> master_password="WWW.1.com", -> master_auto_position=1 for channel "to_master02"; Query OK, 0 rows affected, 7 warnings (0.02 sec) mysql> start slave for channel "to_master01"; Query OK, 0 rows affected, 1 warning (0.01 sec) mysql> start slave for channel "to_master02"; Query OK, 0 rows affected, 1 warning (0.00 sec)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。