Mysql5.7主从复制搭建

注意不适用Mysql8

Docker搭建Mysql主从复制

docker run -p 3307:3306 --name mysql-master \
-v /usr/local/develop/mysql-master/log:/var/log/mysql \
-v /usr/local/develop/mysql-master/data:/var/lib/mysql \
-v /usr/local/develop/mysql-master/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

如果没有mysql5.7会自动下载

进入配置文件目录

cd /usr/local/develop/mysql-master/conf

创建并编辑配置文件

vim my.cnf

[mysqld]

# 设置server_id,同一局域网中需要唯一,对复制架构至关重要
server_id=101

# 指定不需要同步到从库的数据库名称,一般系统数据库mysql不需要同步
binlog-ignore-db=mysql

# 开启二进制日志功能,是MySQL复制的基础
log-bin=mall-mysql-bin

# 设置二进制日志使用的内存大小,用于缓存事务,提高性能
binlog_cache_size=1M

# 设置使用的二进制日志格式,推荐使用"row",因为它是最安全的,能准确复制每一行的变更
# mixed模式下,MySQL会根据操作类型自动选择statement模式还是row模式
binlog_format=mixed

# 二进制日志过期清理时间,设置为7天。0表示不自动清理,不推荐这样做,因为会积累大量日志
expire_logs_days=7

# 跳过主从复制中遇到的指定类型的错误,避免从库复制中断
# 注意:过度使用该设置可能会导致数据不一致,应谨慎使用
slave_skip_errors=1062
 

修改完配置  重启mysql docker容器实例

docker restart mysql-master

进入容器

docker exec -it mysql-master /bin/bash

mysql -uroot -p123456

创建数据同步用户 并赋予权限

CREATE USER 'replica'@'%' IDENTIFIED BY '123456';
GRANT REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'replica'@'%';

刷新

FLUSH PRIVILEGES;(不刷也可以)
 

在宿主机上搭建从服务器

docker run -p 3308:3306 --name mysql-slave \
-v /usr/local/develop/mysql-slave/log:/var/log/mysql \
-v /usr/local/develop/mysql-slave/data:/var/lib/mysql \
-v /usr/local/develop/mysql-slave/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7

进入

cd /usr/local/develop/mysql-slave/conf

创建并编辑从数据库配置

vim my.cnf

[mysqld]

# 设置server_id,同一局域网中需要唯一,对复制架构至关重要
server_id=102

# 指定不需要同步到从库的数据库名称,一般系统数据库mysql不需要同步
binlog-ignore-db=mysql

# 开启二进制日志功能,以备Slave作为其他数据库实例的Master时使用
log-bin=mall-mysql-slave1-bin

# 设置二进制日志使用的内存大小,用于缓存事务,提高性能
binlog_cache_size=1M

# 设置使用的二进制日志格式,推荐使用"row",因为它是最安全的,能准确复制每一行的变更
# mixed模式下,MySQL会根据操作类型自动选择statement模式还是row模式
binlog_format=mixed

# 二进制日志过期清理时间,设置为7天。0表示不自动清理,不推荐这样做,因为会积累大量日志
expire_logs_days=7

# 跳过主从复制中遇到的指定类型的错误,避免从库复制中断
# 注意:过度使用该设置可能会导致数据不一致,应谨慎使用
slave_skip_errors=1062

# 配置中继日志
relay_log=mall-mysql-relay-bin

# 表示slave将复制事件写进自己的二进制日志
log_slave_updates=1

# 将slave设置为只读(具有SUPER权限的用户除外)
read_only=1
 

修改完配置  重启mysql docker容器实例

docker restart mysql-slave

在主数据库中查看主从同步状态

进入主库

docker exec -it mysql-master /bin/bash

mysql -uroot -p123456

show master status;

返回宿主机

在从数据库配置主从复制  查看主从状态

docker exec -it mysql-slave /bin/bash

mysql -uroot -p

123456

在从数据库配置主从复制

change master to master_host="宿主机IP",master_user='replica',master_password='123456',master_port=3307,master_log_file='mall-mysql-bin.000001',master_log_pos=714,master_connect_retry=30 因为我这里是同一台ECS服务器  所以用下面这个

CHANGE MASTER TO 
  MASTER_HOST = '172.17.0.2',
  MASTER_USER = 'replica',
  MASTER_PASSWORD = '123456',
  MASTER_PORT = 3306,
  MASTER_LOG_FILE = 'mall-mysql-bin.000001',
  MASTER_LOG_POS = 621,
  MASTER_CONNECT_RETRY = 30;
 


在从数据库查看主从同步状态

show slave status \G;   \G可加可不加  加了看的清楚点

在从数据库开启主从同步

start slave;

查看从数据库状态发现是否同步

show slave status \G;

 如果不成功 用这个命令停掉  检查配置    STOP SLAVE;

测试  退出从库

进入主库

docker exec -it mysql-master /bin/bash

mysql -uroot -p123456

查看从库

docker exec -it mysql-slave /bin/bash

mysql -uroot -p123456

总结:其实没必要配置外部端口  如果是单台服务器的话

注意mysql5.7中文乱码

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/702281.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

10 在线逻辑分析仪的使用

在线逻辑分析仪简介 传统的 FPGA 板级调试是将逻辑分析仪连接到 FPGA 的 IO 引脚上 ,然后将内部信号引出至 IO 引脚,再进行板级调试,这种方法的缺点是我们需要一个逻辑分析仪,且还要在 PCB 中预留测试点。在线逻辑分析仪克服了以…

博途PLC PID仿真(单容水箱液位高度控制含变积分变增益测试)

单容水箱和双荣水箱的微分方程和数值求解,可以参考下面文章链接: https://rxxw-control.blog.csdn.net/article/details/131139432https://rxxw-control.blog.csdn.net/article/details/131139432这篇博客我们利用欧拉求解器在PLC里完成单容水箱的数学建模。PLC也可以和MATL…

Python习题详解

练习&#xff1a; 1&#xff0c;计算100以内奇数的和 #计算100以内所有奇数的和 sum 0 # n 1 # while n < 100: # # sum sum n # sum n # # n n 2 # n 2 # print(sum) n 99 #求偶数时n 100 while n > 0:sum n# n n - 2n - 2 print(sum)2&#xff0c;打印直…

【办公类-22-08】周计划系列(4)“育儿知识(家园小报)“ (2024年调整版本)

作品展示 背景需求&#xff1a; 制作“育儿知识&#xff08;家园小报&#xff09;”&#xff0c;查询发现去年就没有做 因为“家园小报”基本没有段落文字&#xff0c;都是“文本框文字、艺术字“&#xff0c;很难用python提取文字。 由于只有6篇&#xff0c;因此去年采用的就…

【线程池项目(四)】项目的死锁问题分析和资源回收机制的改善

在上一篇 【线程池项目&#xff08;三&#xff09;】线程池CACHED模式的实现中我们大概说了说cached模式的基本实现&#xff0c;对于多线程编程&#xff0c;我们需要考虑的问题也较于单线程更多、更复杂&#xff0c;经常存在线程同步、资源竞争等复杂的并发控制问题&#xff0c…

【Java程序设计】【C00276】基于Springboot的就业信息管理系统(有论文)

基于Springboot的就业信息管理系统&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的就业信息管理系统 本系统分为前台功能模块、管理员功能模块、学生功能模块、企业功能模块以及导师功能模块。 前台功能模块&…

微服务知识02

1、九大高并发解决方案 2、系统架构图​​​​​​​ 3、分布式事务 本地事务、分布式事务 操作不同服务器的数据库&#xff08;垂直分库&#xff09; 4、分布式事务解决方案&#xff08;没有seata之前&#xff09; &#xff08;1&#xff09;XA协议&#xff08;强一致性&a…

PixPin:一键搞定截图、长截图、贴图、GIF

名人说&#xff1a;莫道桑榆晚&#xff0c;为霞尚满天。——刘禹锡&#xff08;刘梦得&#xff0c;诗豪&#xff09; 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 一、什么是PixPin&#xff1f;①PixPin②核心功…

readproc.h

Ubuntu22.04系统中 编译自己写的程序的时候&#xff0c;报错&#xff0c;显示找不到readproc.h文件&#xff0c;通过安装libprocps-dev解决 sudo apt install libprocps-dev

项目解决方案:街道社区视频监控接入、汇聚和联网设计方案

目 录 一、客户需求 二、网络拓扑图 三、方案描述 四、系统配置 1、服务器配置 2、带宽配置 五、方案优势 1. 平台可堆叠使用 2. 支持主流接入协议 4. 多种终端显示 5. 客户端功能强大 6. 一机一档 一、客户需求 1&#xff0c;一个街道有十个社…

消息中间件篇之RabbitMQ-高可用机制

一、怎么保证高可用性 在生产环境下&#xff0c;使用集群来保证高可用性&#xff0c;一般我们采用普通集群、镜像集群、仲裁队列。 二、普通集群 普通集群&#xff0c;或者叫标准集群&#xff08;classic cluster&#xff09;&#xff0c;具备下列特征&#xff1a; 1. 会在集…

蓝桥杯DP算法——区间DP(C++)

根据题意要求的是将石子合并的最小权值&#xff0c;我们可以根据DP思想使用二维数组f[i,j]来存放所有从第i堆石子到第j堆石子合并成一堆石子的合并方式。 然后由第二个图所示&#xff0c;我们可以将i到j区间分成两个区间&#xff0c;因为将i到j合并成一个区间的前一步一定是合…

SpringBoot自动装配的原理

废话不多说&#xff0c;直接上干货 SpringBoot 是如何实现自动装配的&#xff1f; 以我这个2.6.13的版本为例 第一步&#xff0c;我们先从SpringBootApplication这个入口注解看起 在springBootApplication这个注解当中有三个关键性的注解&#xff0c;大概可以看作是&#xff1a…

Java面试:Spring Cloud Alibaba

文章目录 引言I Spring Cloud Alibaba1.1 配置文件加载的优先级(由高到低)1.2 注册中心1.3 rpcII 高并发场景:缓存穿透/缓存失效/雪崩如何解决2.1 缓存穿透2.2 缓存击穿(失效)2.3 缓存雪崩引言 微服务涉及的中间件分布式事务事务的传播方式事务的隔离级别缓存穿透/缓存失效…

Matlab/simulink基于vsg的风光储调频系统建模仿真(持续更新)

​ 1.Matlab/simulink基于vsg的风光储调频系统建模仿真&#xff08;持续更新&#xff09;

C/C++暴力/枚举/穷举题目持续更新(刷蓝桥杯基础题的进!)

目录 前言 一、百钱买百鸡 二、百元兑钞 三、门牌号码&#xff08;蓝桥杯真题&#xff09; 四、相乘&#xff08;蓝桥杯真题&#xff09; 五、卡片拼数字&#xff08;蓝桥杯真题&#xff09; 六、货物摆放&#xff08;蓝桥杯真题&#xff09; 七、最短路径&#xff08;蓝…

图解目标检测 之 【YOLOv9】 算法 最全原理详解

YOLOv9与SOTA模型对比 什么是 YOLOv9&#xff1f;YOLOv9是YOLO系列中的最新产品&#xff0c;是一种实时目标检测模型。它通过先进的深度学习技术和架构设计&#xff0c;包括通用 ELAN (GELAN) 和可编程梯度信息 (PGI)&#xff0c;展现出更好的性能。 YOLO 系列通过引入计算机视…

Java/Python/Go不同开发语言基础数据结构和相关操作总结-GC篇

Java/Python/Go不同开发语言基础数据结构和相关操作总结 1. 常见gc方式1.1 gc判断对象是否存活1.2 引用计数法1.2 标记-清除算法1.3 复制算法1.4 标记-压缩算法1.5 分代收集算法 2. java的gc方式以及垃圾回收器2.1 gc方式2.1 gc回收器2.1.1 Serial收集器2.1.2 ParNew收集器2.1.…

Socket、UDP、TCP协议和简单实现基于UDP的客户端服务端

目录 Socket TCP和UDP区别 UDP&#xff1a;无连接&#xff0c;不可靠传输&#xff0c;面向数据报&#xff0c;全双工 TCP&#xff1a;有连接&#xff0c;可靠传输&#xff0c;面向字节流&#xff0c;全双工 无连接和有连接 可靠传输和不可靠传输 面向数据报和面向字节流…

学习或从事鸿蒙开发工作,有学历要求吗?

目前安卓有2,000万的开发者。本科及以上学历占比为35%&#xff1b;iOS有2,400万开发者&#xff0c;本科及以上学历占比为40% 绝大多数的前端开发者都是大专及以下学历&#xff0c;在2023年华为开发者大会上余承东透露华为的开发者目前有200万&#xff0c;但鸿蒙开发者统计的数据…