MySQL主从复制 - 基于GTID

版权声明:本文为博主原创文章,欢迎转载,转载请注明出处 https://blog.csdn.net/m0_37893932/article/details/80117377

环境

主从库 IP Linux版本 MySQL版本
主库 101.201.xxx.11 Linux version 3.10.0-514.6.2.el7.x86_64 5.7.22
从库 101.201.xxx.22 Linux version 3.10.0-693.11.1.el7.x86_64 5.6.35

步骤

1. 创建用户并授权

主库某个用户授予从库IP的主从复制的权限

grant replication slave on *.* to repl22@'101.201.xxx.22' identified by 'xxxx';
flush privileges;

2. 修改MySQL配置文件my.cnf

主库开启GTID复制模式

配置 释义
server-id 必须唯一,设置为IP尾段便于管理
binlog-format 主从复制方式之一
gtid-mode 开启GTID模式
enforce-gtid-consistency 强制GTID的一致性,事务安全
lower_case_table_names 表名不区分大小写
log-bin 开启二进制日志
log_bin_index 二进制的索引文件名
log-slave-updates slave更新是否记入日志
replicate-do-db 指定要复制的数据库 *
vim /etc/my.cnf

server-id = 31
binlog-format = ROW
gtid-mode = on
enforce-gtid-consistency = true
lower_case_table_names = 1
log-bin = mysql-bin
log_bin_index = /var/lib/mysql/mysql-bin.index
log-slave-updates = true
replicate-do-db = targetDB 

3. 重启MySQL服务,使配置生效

service mysqld restart

4.导出主库数据,导入从库

5. 查看主库的复制位置

show master status;
master_log_file master_log_pos
mysql-bin.000003 1638

6.配置主从同步

从库MySQL安装目录下的bin目录中执行/也可以在NaviCat中执行

./mysql -uroot -p

mysql>use mysql; 
mysql>stop slave;
mysql>change master to
      master_host='xx.xx.xx.11',
      master_user='repl22',
      master_password='xxxx',
      master_log_file='mysql-bin.000003',
      master_log_pos=1638;
mysql>start slave;
mysql>show slave status\G;

主要观察下面几项即可
- Slave_IO_Running: Yes
- Slave_SQL_Running: Yes
- Log_File Log_Posmaster的相同

有错可以看 last_Error中的描述

7.双主互相复制的my.cnf配置

#添加配置
auto_increment_increment = 10
auto_increment_offset = 1

auto-increment-offset、auto-increment-increment
两个参数用于在 双主(多主循环)互相备份。 因为每台数据库服务器都可能在同一个表中插入数据,如果表有一个自动增长的主键,那么就会在多服务器上出现主键冲突。 解决这个问题的办法就是让每个数据库的自增主键不连续。 上图说是, 我假设需要将来可能需要10台服务器做备份, 所以auto-increment-increment 设为10. 而 auto-increment-offset=1 表示这台服务器的序号。 从1开始, 不超过auto-increment-increment。这样做之后, 我在这台服务器上插入的第一个id就是 1, 第二行的id就是 11了, 而不是2.(同理,在第二台服务器上插入的第一个id就是2, 第二行就是12, 这个后面再介绍) 这样就不会出现主键冲突了。

猜你喜欢

转载自blog.csdn.net/m0_37893932/article/details/80117377