共计 1012 个字符,预计需要花费 3 分钟才能阅读完成。
实验基于
MySQL 5.6.x(5.6.30)
ps. MySQL 5.7 开启 GTID 更方便
master: 192.168.1.186
slave: 192.168.1.187
〇 同步两个 mysql 实例的数据
先在 master 和 slave 上执行
- SET @@global.read_only=ON;
然后通过 mysqldump、xtrabackup 等工具 备份 master 数据,并且恢复到 slave 上。
因为开启了 read_only恢复可能需要具有 super 权限的用户。
〇 关闭两个 mysqld
〇 修改配置文件,并以 GTID 方式启动:
master 和 slave 配置文件都需要改
配置文件 [mysqld] 里至少需要添加:
- log–bin
- relay–log = relay–log
- log–slave–updates
- gtid_mode = ON # 5. 6 为静态参数,5.7. 6 以后为动态参数
- enforce–gtid–consistency = ON # 5. 6 中为布尔类型,5.7. 6 以后为枚举类型,多了两个选项
另外要保证 master 和 slave 的 server_id 不一致
(在 5.7 中,slave 也可以不需要开启 binlog 便可以启动 GTID 了,存放在 mysql.gtid_executed 中)
〇 建立连接
在 master 上创建 replication 用户:
- GRANT replication slave ON *.* to repl@‘192.168.1.187’ IDENTIFIED BY ‘repl@pwd’;
- FLUSH PRIVILEGES;
并且在 slave 上执行:
- CHANGE MASTER TO
- MASTER_HOST = ‘192.168.1.186’,
- MASTER_PORT = 3306,
- MASTER_USER = ‘repl’,
- MASTER_PASSWORD = ‘repl@pwd’,
- MASTER_AUTO_POSITION = 1;
- START SLAVE;
〇 在 master 上关闭 read_only
- SET @@global.read_only=OFF;
〇 参考文档:
MySQL 5.6 Reference Manual – Chapter 17 Replication – 17.1.3.2 Setting Up Replication Using GTIDs
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-03/142385.htm
正文完
星哥玩云-微信公众号