首页 > 数据库 >MySQL主从复制

MySQL主从复制

时间:2023-06-01 17:55:08浏览次数:63  
标签:主库 主从复制 xxx source master MySQL 从库

一,概述

  主从复制是指将主数据库的DDL和DML操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做》,从而使得从库和主库的数据保持同步。

  MySQL支持一台主库同时向多台从库进行复制,从库同时也可以作为其他从服务器的主库,实现链状复制。

MySQL 复制的优点主要包含以下三个方面:

  1,主库出现问题,可以快速切换到从库提供服务。

  2,实现读写分离,降低主库的访问压力。

  3,可以在从库中执行备份,以避免备份期间影响主库服务。

二,原理

从上图来看,复制分成三步:

  1,Master 主库在事务提交时,会把数据库变更记录在二进制日志文件 BinLog 中。

  2,从库读取主库的二进制日志文件 BinLog,写入到从库的中继日志 Relay Log。

  3,slave 重做中继日志中的事件,将改变反映它自己的数据。

三,搭建

  两台服务器:192.168.2.128(主) 和 192.168.2.130(从)

  主服务器配置:

    1,安装 MySQL 服务

    2,开放 3306 端口或者直接关闭并禁用防火墙。

    3,修改配置文件 /etc/my.cnf

1 # mysql 服务ID,保证整个集群环境中唯一,取值范围:1 - 2^32 - 1,默认为 1。
2 server-id=1
3 # 是否只读,1 代表只读,0 代表读写
4 read-only=0
5 # 忽略的数据,指不需要同步的数据库
6 # binlog-ignore-db=mysql
7 # 指定需要同步的数据库
8 # binlog-do-db=db01

    4,重启 MySQL 服务

    5,登录 MySQL,创建远程连接的账号,并授予主从复制权限

1 # 创建 mscopy 用户,并设置密码,该用户可在任意主机连接 MySQL 服务
2 create user 'mscopy'@'%' identified with mysql_native_password by '123456';
3 # 为 'mscopy'@'%' 用户分配主从复制权限
4 grant replication slave on *.* to 'mscopy'@'%';

    6,通过指令,查看二进制坐标

1 show master status;

  从服务器配置:

    1,安装 MySQL 服务

    2,开放 3306 端口或者直接关闭并禁用防火墙

    3,修改配置文件 /etc/my.cnf

1 # mysql 服务ID,保证整个集群环境中唯一,取值范围:1 - 2^32 - 1,和主库不一样即可。
2 server-id=2
3 # 是否只读,1 代表只读,0 代表读写
4 read-only=1

    4,重启 MySQL 服务

    5,登录 MySQL,设置从库配置

1 # MySQL8.0.23
2 change replication source to source_host='xxx.xxx.xxx.xxx',source_user='xxx',source_password='xxx',source_log_file='xxx',source_log_pos=xxx;
3 # MySQL8.0.23之前
4 change master to master_host='xxx.xxx.xxx.xxx',master_user='xxx',master_password='xxx',master_log_file='xxx',master_log_pos=xxx;
参数名 含义 8.0.23之前
source_host 主库 IP 地址 master_host
source_user 连接主库的用户名 master_user
source_password 连接主库的用户密码 master_password
source_log_file binlog 日志文件名 master_log_file
source_log_pos binlog 日志文件位置 master_log_pos

 

 

 

 

 

 

    6,开启同步操作

1 start replica; # 8.0.22之后
2 start slave; # 8.0.22之前

    7,查看 slave 的状态

1 show slave status\G

四,测试

  自行测试

 

标签:主库,主从复制,xxx,source,master,MySQL,从库
From: https://www.cnblogs.com/zhangzhongkun/p/17449787.html

相关文章

  • SQLserver 与mysql中的varchar()类型关于存储汉字的个数;字符与字节的区别
    https://blog.csdn.net/qq_64314976/article/details/128604141https://www.cnblogs.com/chenmingjun/p/8118083.html今天遇到一个问题,mysql中的汉字,插入到sqlserver中报错,两边字段大小都是varchar(18)。汉字个数超过了9个,所以在SQLserver中报错我可以理解,因为1个汉字占用2个......
  • ‘dependencies.dependency.version‘ for mysql:mysql-connector-java:jar is missin
    项目使用的技术框架是SpringBoot,依赖管理工具是Maven,需要用到数据库所以引入了mysql-connector-java相关jar包。之前项目一直正常的,不会报错,最近更新了一下版本,项目启动的时候直接报错:[INFO]Scanningforprojects...[ERROR][ERROR]Someproblemswereencounteredwhilep......
  • MySQL及调优
    存储引擎MySQL中存在多种存储引擎,比如:InnoDB:1.支持事务;2.支持外键;3.同时支持行级别的锁和表级别的锁。适用场景:经常更新的表,存在并发读写或者有事务处理的业务场景。MyISAM:1.支持表级别的锁(插入更新操作会锁表);2.不支持事务;3.拥有较高的插入和查询速度。适用场景:只读类的数据......
  • Mybatis 数据库Mysql时间范围内数据查询非常慢的解决办法
    表中数据量过大,目前已有300万条,查询user_name数据速度非常慢,如果不使用索引,想优化sql来提高查询速度,在调试过程中发现,写sql查询数据库时,传入时间段查询部分为:<!--大于开始时间-->andsw.TIME>=to_date(CONCAT('2018-09-10','00:00:00'),'yyyy-mm-ddhh24:mi:ss')<!--小于结束......
  • mysql functions ,LAST_INSERT_ID() 或 自定义主键
    http://dev.mysql.com/doc/refman/5.6/en/information-functions.html LAST_INSERT_ID() 这个值如果各个table都有一个自增的id,那么各个table用各自的LAST_INSERT_ID()  自定义:#固定前缀(2位)+时间戳(13位)+随机数(7位)SELECTCONCAT('AB',#......
  • MySQL 8错误日志出现"The table /home/work/mysql_3306/tmp/#sqla2b_298b06_4d is fu
    ##############    了解MySQL8.0.26的错误日志出现"Thetable /home/work/mysql_3306/tmp/#sqla2b_298b06_4disfu11!"的bug,暂时通过修改临时表的存储引擎为内存引擎解决  MySQL8.0.13开始引入新的临时内存表引擎TempTable,并将其作为内存中创建临时表的默认存......
  • mysql聚合函数---总体聚合、总体累加、分组聚合、分组累加
    MySQL从版本8.0开始,才支持窗口函数,所以之前的版本分组累加需要构造sql语句来实现。数据:select*fromemp;一、mysql总体聚合函数min()、max()、count()、sum()、avg()selectcount(ename),max(sal),min(sal),sum(sal),round(avg(sal),2)fromemp;二、mysql总体累加/总体累计数量......
  • Linux软件安装--二进制发布包安装、rpm发布包安装(案例:jdk和mysql安装)
    Linux软件安装的4种方式一、二进制发布包指软件已经根据平台编译并且打包,拿到这个包后解压并配置环境变量,如jdk包、mysql包、Tomcat包。示例:二进制发布包安装jdk。示例:二进制发布包安装jdk1.获取安装包1).直接从linux网上下载安装包-->wget https://download.oracle.com/otn-pu......
  • MySql主从复制
    介绍MySQL主从复制是一个异步的复制过程,底层是基于Mysql数据库自带的二进制日志功能。就是一台或多台MySQL数据库(slave,即从库)从另一台MySQL数据库(master,即主库)进行日志的复制,然后再解析日志并应用到自身,最终实现从库的数据和主库的数据保持一致。MySQL主从复制是MySQL数据......
  • Linux centos7 ppc64le编译安装MySQL8遇见问题
    一.关于Nopackagedevtoolset-7-gccavailable.的解决办法1.使用centos默认yum源2.依次执行以下命令yuminstall-ycentos-release-sclyuminstall-ydevtoolset-7 二.cmake3>=3.6.1isneededbymysql-community-8.0.18-1.el7.ppc64le安装cmake3yuminstall......