mysql实现主从复制的日志是哪种_Redis主从复制

mysql实现主从复制的日志是哪种_Redis主从复制Mysql实现主从复制

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

前言

Mysql主从同步,要求需要先搭建至少两个mysql实例,一主一从,使用推荐Docker搭建Mysql《Docker部署安装Mysql》

1、原理

在这里插入图片描述
mysql主(称master)从(称slave)复制的原理:

  • master将数据改变记录到二进制日志(binary log)中,也就是配置文件log-bin指定的文件(这些记录叫做二进制日志事件,binary log events)
  • slave将master的binary log events拷贝到它的中继日志(relay log)
  • slave重做中继日志中的事件,将改变反映它自己的数据(数据重演)

主从配置需要注意的地方:

  • 主DB server和从DB server数据库的版本一致
  • 主DB server和从DB server数据库数据一致
  • 主DB server开启二进制日志,主DB server和从DB server的server_id都必须唯一

2、数据库搭建

事先搭建好两个数据库,分别为端口3306、3307,并且分别创建数据库test
数据库的容器名称分别为;mysql-3306、mysql-3307;

3、主库搭建配置

主数据库使用docker搭建,端口为3306

1、修改配置文件:

在搭建好基础Mysql以后,修改配置文件,在原有基础上加入如下内容:

[mysqld]
server-id=1  #服务id,不可重复
log-bin=mysql-bin  #开启二进制日志,设置路径
#是否只读,1 代表只读, 0 代表读写
read-only=0
#需要同步的数据库名,如果有多个数据库,可重复此参数,每个数据库一行(先建好库),不指定则同步整个数据源
binlog-do-db=test
#不同步系统数据库
binlog-ignore-db=mysql
binlog-ignore-db=sys
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema

2、重启数据库:

docker restart mysql-3306

4、从库搭建配置

主数据库使用docker搭建,端口为3306

1、修改配置文件:
在搭建好基础Mysql以后,修改配置文件,在原有基础上加入如下内容:

[mysqld]
#服务id,不可重复
server-id=2 
# 开启二进制日志
log-bin=mysql-bin

2、重启数据库:

docker restart mysql-3307

3、获取master相关信息:

在3306端口的主库执行:SHOW MASTER STATUS;查看新的主库信息,结果如下:

在这里插入图片描述

4、从库连接主库配置:

连接语句:

-- 从库SQL语句:
CHANGE MASTER TO 
master_host='162.10.1.35', #主库所在地址
master_user='root', -- 前面主库设置的用户、密码
master_password='123456', 
master_port=3306, -- 主库端口
master_log_file='mysql-bin.000001',  -- 前面主库的File信息
master_log_pos=157; -- 前面主库的Position信息 

启动同步语句:

-- 启动同步 SQL语句: stop:停止,reset:重启
start slave; 

5、从库状态检测:

检测语句:

show slave status;

效果:

在这里插入图片描述注意: 当Slave_IO_Running 和 Slave_SQL_Running: 均为YES 标识则表示主从同步启动成功;

6、其他操作事项:

查看server相关的配置项:

SHOW GLOBAL VARIABLES LIKE 'server%';

停止主从复制:

stop slave;

重新配置主从:

# 重新配置主从流程,先停止,再重置从库连接主库配置
stop slave;
reset master;
再根据主库信息进行从库配置(SHOW  MASTER STATUS;)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/170334.html原文链接:https://javaforall.net

(0)
上一篇 2022年8月13日 上午8:00
下一篇 2022年8月13日 上午8:00


相关推荐

  • 脏读、幻读与不可重复读[通俗易懂]

    脏读、幻读与不可重复读

    2022年2月17日
    56
  • 数据库——操作数据库语句(select单表查询)

    数据库——操作数据库语句(select单表查询)前两天又装了oracle,开始再次学习数据库,希望这次可以系统的学习,主要是语句的学习。数据库操作语句SQL一、select   查询语句二、DDL 数据 定义 语句(create、drop、alter)三、DML数据操作语句(insert delect update)四、TCL 事务控制  语句(commit提交、rollback撤销、savep

    2022年6月1日
    39
  • webapi文档描述-swagger

    webapi文档描述-swagger最近做的项目使用mvc+webapi,采取前后端分离的方式,后台提供API接口给前端开发人员。这个过程中遇到一个问题后台开发人员怎么提供接口说明文档给前端开发人员,最初打算使用word文档方式进行交流

    2022年8月5日
    9
  • 电赛校赛-三相逆变电源设计(单片机部分–C52仿真测频+串口发送机与串口接收机)

    电赛校赛-三相逆变电源设计(单片机部分–C52仿真测频+串口发送机与串口接收机)本文主要介绍C52符合题目测量指标的测量方案

    2022年6月10日
    37
  • 计算机如何寻址_PLC编程,如何学习SCL语言?SCL语言编程入门

    计算机如何寻址_PLC编程,如何学习SCL语言?SCL语言编程入门随着现代工控技术的不断发展,可能很多使用过PLC的技术人员都有这么一个感受:传统的‘梯形图’编程方式在面对越来越复杂的控制要求时,已显得力不从心。其实,现在很多大品牌的中高级PLC都支持国际电工委员会IEC61131标准中规范的五种编程语言的混合编程,即梯形图(LD)、结构化文本(ST)、流程图(SFC)、指令表(IL)和功能块(FB)。在这五种编程语言中,梯形图+结构化文本是一…

    2026年4月17日
    7
  • 银行家算法c语言加注释,银行家算法C语言代码

    银行家算法c语言加注释,银行家算法C语言代码《银行家算法C语言代码》由会员分享,可在线阅读,更多相关《银行家算法C语言代码(10页珍藏版)》请在人人文库网上搜索。1、实验名称:银行家算法声明:杨秀龙学号:专业课:创新实验课111地图老师:霍林实验标题银行家算法实验的目的银行家算法如何避免死锁的更深层次理解设计思想银行家算法假定,根据进程的请求,在该进程的请求中已分配的资源上执行安全算法,如果可以满足其他进程的所有请求,则满足该进程的请求,否…

    2022年4月28日
    33

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号