返回顶部
首页 > 资讯 > 数据库 >两个版本的Mysql 主从复制
  • 683
分享到

两个版本的Mysql 主从复制

2024-04-02 19:04:59 683人浏览 安东尼
摘要

MySQL  AB复制 Mysql AB 复制又称主从复制,实现的是数据同步,要求最好所有的mysql版本相同,如果版本不一致,从服务器版本要高于主服务器,而且版本不一致不能做双向复制。

MySQL  AB复制

 

Mysql AB 复制又称主从复制,实现的是数据同步,要求最好所有的mysql版本相同,如果版本不一致,从服务器版本要高于主服务器,而且版本不一致不能做双向复制。

AB复制主要的有点有两点:

1、解决宕机带来的数据不一致,因为mysql AB 复制可以实时备份数据,

2、减轻数据库服务压力

但是mysql AB复制不适用于大数据环境,如果是大数据环境推荐使用集群

 

Mysql复制的三个主要步骤:

①主服务器更改记录到二进制文件中(二进制日志事件)

②从服务器吧主服务器的二进制文件拷贝到自己的中继日志中

③从服务器执行中继日志中的事件,达到自己和主服务器的环境一致

 

因为Mysql5.1和5.7版本有点差距

所以此篇博文以5.1和5.7实现各自版本的主从复制

 

开始搭建:

环境:redhat6.5

 

三台装有相同版本Mysql 5.1的虚拟机

Server1(master):172.25.141.4

Server2(master&slave):172.25.141.5

Server3(slave):172.25.141.6

 

Server1(172.25.141.4):

 

vim  /etc/my.cnf (添加以下)

server-id=1

log-bin=mysql-bin

binlog-do-db=testdb

binlog-ignore-db=mysql

/etc/init.d/mysqld   start

 

mysql  ##登陆

mysql> create database testdb;

mysql> grant replication slave on *.* to redhat@'172.25.141.5' identified by 'test123';

mysql> show master status;  ##查看master状态

mysql> show master status;

+------------------+----------+--------------+------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000003 |     1019 | testdb       | mysql            |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

mysql>quit

mysqlbinlog mysql-bin.000003  ##查看MySQL日志

 

 

Server2(172.25.141.5):

 

mysql -h 172.25.141.4 -u redhat -ptest123  ##测试能否登上

vim  /etc/my.cnf(添加以下)

server-id=2

mysql

mysql> create database testdb;

mysql> change master to master_host='172.25.141.4',master_user='redhat',master_passWord='test123',master_log_file='mysql-bin.000003',master_log_pos=1019;

###master_log_file与master status里面的File名一样

###master_log_pos=1019数字一定与master的position一样

mysql> slave start;

mysql> show slave status\G;

          ......  

   Slave_IO_Running: Yes

                    Slave_SQL_Running: Yes

               ......

 

#######################################################

测试:

Server1:

mysql> use testdb;

mysql> create table users ( username varchar(25) not null, password varchar(25) not null );

mysql> insert into users values ('user1','123');

mysql> insert into users values ('user2','456');

 

Server2端database testdb也会出现以上所添加项目

mysql> select * from users;

+----------+----------+

| username | password |

+----------+----------+

| user1    | 123      |

| user2    | 456      |

+----------+----------+

2 rows in set (0.00 sec)

####delete from users where username='user1';

####Server1端删除某项Server2端也会删除

#######################################################

 

server1(master)------>server2(master&slave)------>server3(slave)

 

Server2(172.25.141.5):

 

vim  /etc/my.cnf

server-id=2

log-bin=mysql-bin

binlog-do-db=testdb

binlog-ignore-db=mysql

 

log-slave-updates

/etc/init.d/mysqld   start

mysql

mysql> grant replication slave on *.* to redhat@'172.25.141.6' identified by 'test123';

mysql> show master status;

mysql> show master status;

+------------------+----------+--------------+------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000001 |      106 | testdb       | mysql            |

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

 

Server3(172.25.141.6):

 

mysqlbinlog --start-position=193 mysql-bin.000003 | mysql -uroot -p***

###导入serverA之前的MySQL操作日志,因为server3之前并没有那些操作,要同步数据那此时server3的环境要与server1一致

vim  /etc/my.cnf

Server-id=3

/etc/init.d/mysqld  start

mysql

mysql> change master to master_host='172.25.141.5',master_user='redhat',master_password='test123',master_log_file='mysql-bin.000001',master_log_pos=106 ;

mysql> slave  start;

mysql> show slave status\G;

          ......  

   Slave_IO_Running: Yes

            Slave_SQL_Running: Yes

               ......

出现这个则证明server3的slave开启成功,可以同步数据

 

MySQL 5.7

 

两台装有相同版本MySQL的虚拟机:

Server1(master)

Server2(slave)

安装包:mysql-5.7.11-1.el6.x86_64.rpm-bundle.tar

 

 

Server1:

 

tar  xf  mysql-5.7.11-1.el6.x86_64.rpm-bundle.tar

yum  install  *  -y

vim  /etc/my.cnf

 server-id=1

 

log-bin=mysql-bin

binlog-do-db=testdb

 

gtid-mode=on

enforce-gtid-consistency=on

/etc/init.d/mysqld  start

cat /var/log/mysqld.log  | grep temporary   ##查看root密码

mysql_secure_installation

##更改密码,必须含有大小写字母、数字和特殊字符并不少于8个字符

mysql  -p****  ##登陆

mysql> create database testdb;

mysql> grant replication slave on *.* to redhat@172.25.141.5 identified by '@Ling110';

mysql> show master status;

mysql> show master status;

+------------------+----------+--------------+------------------+-------------------+

| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |

+------------------+----------+--------------+------------------+-------------------+

| mysql-bin.000001 |      319 | testdb       |                  |                   |

+------------------+----------+--------------+------------------+-------------------+

1 row in set (0.00 sec)

 

 

Server2:

 

tar xf mysql-5.7.11-1.el6.x86_64.rpm-bundle.tar

yum install * -y

mysql -h 172.25.141.4 -uredhat -p@Ling110  ##测试能否登上

 

vim  /etc/my.cnf

server-id=2

 

gtid-mode=on

enforce-gtid-consistency=on

/etc/init.d/mysqld  start

mysql_secure_installation

mysql  -p****

mysql> create  database  testdb;

mysql> change master to master_host='172.25.141.4',master_user='redhat',master_password='@Ling110',master_auto_position=1;

mysql> start slave;

mysql> show slave status\G;

          ......

             Slave_IO_Running: Yes

            Slave_SQL_Running: Yes

                      ......

 

测试同MySQL5.1

 

MySQL5.7和MySQL5.1不同的一点在于MySQL5.7可以开启多线程模式,有效解决数据同步的延迟问题

 

开启多线程模式:

 

Server2:

 

vim  /etc/my.cnf

slave-parallel-type=LOGICAL_CLOCK  ##开启多线程模式

slave-parallel-workers=16

##16为官方推荐数目,0为原始单线程模式,切记不可设为1,性能会比0还差,因为还是单线程但多了一层转发降低效率

master-info-repository=TABLE   ##优化

relay_log_info_repository=TABLE  ##优化

/etc/init.d/mysqld  restart

mysql  -p***

mysql> show processlist;  ##可以看到开启的多个线程

mysql> show processlist;

+----+-------------+-----------+------+---------+------+--------------------------------------------------------+------------------+

| Id | User        | Host      | db   | Command | Time | State                                                  | Info             |

+----+-------------+-----------+------+---------+------+--------------------------------------------------------+------------------+

|  1 | system user |           | NULL | Connect |   12 | Slave has read all relay log; waiting for more updates | NULL             |

|  2 | system user |           | NULL | Connect |   13 | Waiting for master to send event                       | NULL             |

|  3 | system user |           | NULL | Connect |   13 | Waiting for an event from Coordinator                  | NULL             |

|  4 | system user |           | NULL | Connect |   13 | Waiting for an event from Coordinator                  | NULL             |

|  5 | system user |           | NULL | Connect |   13 | Waiting for an event from Coordinator                  | NULL             |

|  7 | system user |           | NULL | Connect |   13 | Waiting for an event from Coordinator                  | NULL             |

|  8 | system user |           | NULL | Connect |   13 | Waiting for an event from Coordinator                  | NULL             |

|  9 | system user |           | NULL | Connect |   13 | Waiting for an event from Coordinator                  | NULL             |

| 10 | system user |           | NULL | Connect |   13 | Waiting for an event from Coordinator                  | NULL             |

| 11 | system user |           | NULL | Connect |   13 | Waiting for an event from Coordinator                  | NULL             |

| 12 | system user |           | NULL | Connect |   13 | Waiting for an event from Coordinator                  | NULL             |

| 13 | system user |           | NULL | Connect |   13 | Waiting for an event from Coordinator                  | NULL             |

| 14 | system user |           | NULL | Connect |   13 | Waiting for an event from Coordinator                  | NULL             |

| 15 | system user |           | NULL | Connect |   13 | Waiting for an event from Coordinator                  | NULL             |

| 16 | system user |           | NULL | Connect |   13 | Waiting for an event from Coordinator                  | NULL             |

| 17 | system user |           | NULL | Connect |   13 | Waiting for an event from Coordinator                  | NULL             |

| 18 | system user |           | NULL | Connect |   13 | Waiting for an event from Coordinator                  | NULL             |

| 19 | system user |           | NULL | Connect |   13 | Waiting for an event from Coordinator                  | NULL             |

| 21 | root        | localhost | NULL | Query   |    0 | starting                                               | show processlist |

+----+-------------+-----------+------+---------+------+--------------------------------------------------------+------------------+

19 rows in set (0.00 sec)

 


您可能感兴趣的文档:

--结束END--

本文标题: 两个版本的Mysql 主从复制

本文链接: https://lsjlt.com/news/37543.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 两个版本的Mysql 主从复制
    MySQL  AB复制 Mysql AB 复制又称主从复制,实现的是数据同步,要求最好所有的mysql版本相同,如果版本不一致,从服务器版本要高于主服务器,而且版本不一致不能做双向复制。...
    99+
    2024-04-02
  • 【MySQL】主从复制(两台服务器)
    概述 主从复制是将主数据库的DDL(数据定义语句)和 DML(数据操作语句)操作通过二进制日志(binlog)传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。主库通常称为Master,从库通常...
    99+
    2023-10-02
    mysql 数据库 sql
  • mysql5.7.19版本的主从复制问题分享
    今天学习构建mysql 5.7.19版本的MySQL的主从复制碰到了一些坑,特定分享下:mysql的主从服务器是通过克隆虚拟机完成,导致uuids一样,需要修改auto.cnf文件在slave上想通过在/e...
    99+
    2024-04-02
  • Mysql的主从复制
    Mysql的主从复制   Mysql的主从复制,我们一般用来保证数据间的同步关系,比如有分公司,我们就需要把数据同步给千里之外的分公司,这样就很方便快捷。这个实验我们还实现了ssl安全连...
    99+
    2024-04-02
  • mysql主从复制
    一.主从复制简介 2015年5月28日11时,12小时后恢复,损失:平均每小时106.48W$ 1)高可用 2)辅助备份 3)分担负载 复制是 MySQL 的一项功能,允许服务器将更改从一个实例复制到另一个实例。 1)主服务器将所有数据和...
    99+
    2019-04-07
    mysql主从复制
  • 【MySQL】主从复制
    纸上得来终觉浅,绝知此事要躬行。 概述 复制是指将主数据库的DDL 和 DML 操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。 MySQL支持一台主库同时向多...
    99+
    2015-07-01
    【MySQL】主从复制
  • mysql主从复制
    两台mysql版本号为5.7以上   主库配置文件设置(注意设置在[mysqld]项中) 主库的ip地址为:192.168.1.1 server-id=1 #唯一id,主库设置1 log-bin=mysql-bin #日志记录...
    99+
    2018-10-04
    mysql主从复制 数据库入门 数据库基础教程 数据库 mysql
  • mysql 主从复制
    1, 准备二台机器或者服务器 ,保持mysq 版本一样或者版本相差不大; 主机:114.215.198.39 从机:116.62.234.228 2    新建一个数据库 我的数据库是hlqzxm; 进入主机的mysql 配置文件中修改配置...
    99+
    2021-10-15
    mysql 主从复制 数据库入门 数据库基础教程 数据库 mysql
  • windows版的mysql主从复制环境搭建
    背景 最近在学习用Spring Aop来实现数据库读写分离的功能。 在编写代码之前,首先是要部署好mysql的环境,因为要实现读写分离,所以至少需要部署两个mysql实例,一主一从,并且主从实例之间能够自动同步,因为我的本机内存并不高,所以...
    99+
    2021-12-22
    windows版的mysql主从复制环境搭建
  • mysql主从复制--一主一从
    1、启动实例3306和33072、检查主库配置[root@client 3306]# egrep  "log-bin|server|sock"  my.cnfsocket &n...
    99+
    2024-04-02
  • Mysql/Mariadb主从复制
    概念 什么是·Mysql/Mariadb主从复制?     Mysql/Mariadb主从复制:当Master(主)数据库发生变化的时候,变化实时会同步到slave(从)数据库中; 类似于:Samba共享文件(C/S)、NFS网络文件...
    99+
    2021-03-22
    Mysql/Mariadb主从复制
  • MySQL-5.5.33主从复制
    搭建主从同步需要在两个电脑上分别安装 MySQL ,我这里安装的是 CentOS6.7 64位,MySQL-5.5.33。MySQL 是二进制包安装的:http://aby028.blog.51cto.co...
    99+
    2024-04-02
  • mysql+ssl主从复制
    主从复制原理 作为主服务器Master, 会把自己的每一次改动都记录到 二进制日志 Binarylog 中。 (从服务器I/O thread会负责来读取master binary log, 然后写入自身r...
    99+
    2024-04-02
  • MySQL主从复制(二)
    主从架构中:从node是不接受w操作的,否则可能会导致数据不一致。一、复制架构中应该注意的问题: 1.限制slave为只读模式 可以设置在启动参数中。 > show global variable...
    99+
    2024-04-02
  • Mysql 主从复制GTID
    --------------------------------------------安装准备配置/etc/my.cnf主master grant 分配复制帐号从slave ...
    99+
    2024-04-02
  • Mysql之主从复制
    文章目录 一.Mysql主从复制介绍 1.Mysql主从复制原理2.Mysql的复制类型3.Mysql主从复制的工作过程 二.搭建 Mysql主从复制1.首先关闭防火墙2.Mysql主从服...
    99+
    2023-09-04
    mysql java 数据库
  • centos8 mysql 主从复制
    ♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️夕阳下,是最美的绽放,树高千尺,落叶归根人生不易,人间真情 目录 Linu...
    99+
    2023-08-31
    数据库 mysql 服务器
  • MySQL5.6 主从复制(简单版)
    几种常见的Replication拓扑结构:1.单master----多slaveslave之间互不通信,只和master通信适用于读压力比较大的应用场景,将读操作分布到不同的slave中,减小master压...
    99+
    2024-04-02
  • MySQL的主从复制、半同步复制和主主复制的概念
    本篇内容主要讲解“MySQL的主从复制、半同步复制和主主复制的概念”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL的主从复制、半同步复制和主主复制的概念...
    99+
    2024-04-02
  • docker下MySQL的主从复制
    MySql的主从复制 sudo docker pull MySQL:5.7 拉取MySQL的镜像文件(版本号为 5.7) sudo docker run -p 3339:3306 --name master -e MYSQL_ROOT_PA...
    99+
    2016-02-20
    docker下MySQL的主从复制
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作