我的编程空间,编程开发者的网络收藏夹
学习永远不晚

【Mysql】Mysql5.7的多源复制搭建

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

【Mysql】Mysql5.7的多源复制搭建

    一.基本环境
主库1: 10.24.65.30  3306 MySQL 5.7.14
主库2: 10.24.65.30  3307 mysql 5.7.14
从库:10.24.65.33  3306 mysql 5.7.14
基于gtid复制

    二.搭建注意事项
1.每个实例上DB名字不能一样。
2.创建或是复制用户时名字不能一样,如果经常遇到一样的帐号若是为了规范创建的帐
号是一样的,考虑在slave的过滤规则把mysql复制忽略掉。
[stop slave sql_thread;change replication filter replicate_ignore_db=mysql;]

    3307启停:
mysqld_safe --defaults-file=/data/mysql/mysql3307/data/my3307.cnf &
mysqladmin shutdown -S /tmp/mysql3307.sock
mysql  -S /tmp/mysql3307.sock

    三.主库配置
1.master1参数设置
gtid-mode=on
enforce-gtid-consistency=1
skip_slave_start=1
2.master2参数设置
gtid-mode=on
enforce-gtid-consistency=1
skip_slave_start=1
3.复制帐号建立
grant replication slave on *.* to repl@'10.24%' identified by 'replsafe';
flush privileges;
4.slave参数设置
gtid-mode=on
enforce-gtid-consistency=1
skip_slave_start=1
master-info-repository=table
relay-log-info-repository=table
5.slave配置连接主库
change master to
master_host='10.24.65.30',
master_port=3306,
master_user='repl',
master_password='replsafe',
master_auto_position=1 for channel 'master-65303306';

    change master to
master_host='10.24.65.30',
master_port=3307,
master_user='repl',
master_password='replsafe',
master_auto_position=1 for channel 'master-65303307';

    四.常用命令:
1.开关复制
start slave io_thread|sql_thread for channel 'master-65303306';
stop slave io_thread|sql_thread for channel 'master-65303306'

    2.监控复制
show slave status for channel 'master-65303306';

    五.校验
master1:
create database mdb1;
use mdb1;
create table t1(id int);

    master2:
create database mdb2;
use mdb2;
create table t2(id int);

    slave:
(product)root@localhost [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mdb1               |
| mdb2               |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
6 rows in set (0.00 sec)

    (product)root@localhost [(none)]> use mdb1;
Database changed
(product)root@localhost [mdb1]> show tables;
+----------------+
| Tables_in_mdb1 |
+----------------+
| t1             |
+----------------+
1 row in set (0.00 sec)

    (product)root@localhost [mdb1]> use mdb2;
Database changed
(product)root@localhost [mdb2]> show tables;
+----------------+
| Tables_in_mdb2 |
+----------------+
| t2             |
+----------------+
1 row in set (0.00 sec)

    六.相关问题
1.多源复制处理之一:
binlog+position:
stop slave sql_thread for channel 'master-65303306';
set sql_slave_skip_counter=n;
start slave sql_thread for channel 'master-65303306';

    gtid:
stop slave sql_thread for channel 'master-65303306';
set gtid_next='uuid-N';
begin;commit;
set gtid_next='automatic';
start slave sql_thread for channel 'master-65303306';
2.从多源复制处理之二:
                Last_IO_Errno: 1236
                Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'A slave with the same server_uuid/server_id as this slave has connected to the master; 
the first event 'mysql-bin.000181' at 154, the last event read from '/data/mysql/mysql3306/logs/mysql-bin.000181' at 123, the last byte read from '/data/mysql/mysql3306/logs/mysql-bin.000181' at 154.'

    解决方法:
a.由于两主库的server-uuid相同,更改其中一个auto.cnf中的server-uuid号
b.并在从库上执行reset slave all清除slave信息
c.重新change master


    补充:

  •             1.dump master1 master2 数据文件(master-data=2)注释掉set_gtid——purged
  •             2.scp master1.sql 至slave  ,reset master 并且导入master1.sql,master_auto=0搭建复制步骤
  •             3.scp master2.sql 至slave  ,reset master 并且导入master2.sql,master_auto=0搭建复制步骤
  •  4.搭建复制通道

  • change master to master_host='127.0.0.1',master_user='repluser',master_password='replpass',master_port=3308,MASTER_LOG_FILE='mysql-bin.000005', MASTER_LOG_POS=9460 for channel 'master_3308';


  • 5.检查无误

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

【Mysql】Mysql5.7的多源复制搭建

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Docker搭建MySQL5.7主从复制的实现

目录1、新建mysql-master主服务器容器实例33072、新建mysql-master主服务器配置文件my.cnf3 重启master实例4 进入mysql-master容器5 master容器实例内创建数据同步用户6 新建mysql
2022-06-22

Mysql主从复制搭建

1.mysql主库会把所有的写操作记录在binlog日志中,并且生成log dump线程,将binlog日志传给从库的I/O线程,从库生成两个线程,一个是I/O线程,另外一个是SQL线程。主将更改操作记录到binlog里从将主的binlog事件(sql语句)
Mysql主从复制搭建
2020-09-28

Mysql复制方式(半同步复制,并行复制,多源复制

一、MySQL主从复制(异步复制,默认) Mysql主从复制原理 Mysql的复制原理大致如下: 1.主库记录binlog日志 在每次准备提交事务完成数据更新前,主库将数据更新的事件记录到二进制日志binlog中。主库上的sync_binlog参数控制binl
Mysql复制方式(半同步复制,并行复制,多源复制
2017-10-08

编程热搜

目录