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,一经查实,立即删除!

相关文章

在线代码格式化工具(支持JavaScript和HTML)

在线代码格式化工具(支持JavaScript和HTML) 写了个自己的在线代码格式化工具(支持JavaScript和HTML)。没广告,爽歪歪!基于js-beautify实现。 中文地址:https://tool.gcc.ac.cn/zh/formatter.h…

01_02_mysql10_用户与权限管理

用户与权限管理 学习再总结宋红康老师课程内容 1.用户管理 MySQL用户可以分为普通用户和root用户。root用户是超级管理员,拥有所有权限,包括创建用户、删除用户和修改用户的密码等管理权限;普通用户只拥有被授予的各种权限。 MySQL提供了许多…

10 在线逻辑分析仪的使用

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

降维技术与信息检索方法

UMAP 统一流形近似和投影 UMAP(Uniform Manifold Approximation and Projection)是一种非线性的降维技术,它可以将高维数据映射到低维空间,同时尽可能保持数据原有的几何结构。UMAP 以流形学习的理论为基础,通过构建数…

博途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;打印直…

代码随想录算法训练营day41| 416. 分割等和子集

416、分割等和子集&#xff1a; class Solution(object):def canPartition(self, nums):""":type nums: List[int]:rtype: bool"""sum_nums sum(nums)if sum_nums % 2 ! 0:return Falsetarget sum_nums / 2dp [0] * (target 1)for i in ran…

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

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

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

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

七、函数式编程

一、概念 函数式编程通过使用函数,来将值转换成抽象单元,接着用于构建软件系统。 命令式编程和函数式编程的区别? 命令式编程往往是建立在直接操作和检查程序状态之上的。 函数式,倾向于把程序拆分,并抽象成多个函数组装回去。 1、高阶函数 函数可以作为返回值(给了一些…

【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…

286.【华为OD机试真题】学生重新排队(JavaPythonC++JS实现)

🚀点击这里可直接跳转到本专栏,可查阅顶置最新的华为OD机试宝典~ 本专栏所有题目均包含优质解题思路,高质量解题代码(Java&Python&C++&JS分别实现),详细代码讲解,助你深入学习,深度掌握! 文章目录 一. 题目-学生重新排队二.解题思路三.题解代码Python题解…