mac 本地docker-mysql主从复制部署

mac 本地docker-mysql主从复制部署,服务器同理

1.本地docker启动两个mysql服务.端口号不一样

没有选择挂载到宿主机.只做测试用. 只是端口号不一样容器删掉.就没有数据了. 生产测试,需要挂在

  1. master
docker run -d --name mysql-slave -p 3308:3306 \
-e MYSQL_ROOT_PASSWORD=root mysql:5.7
  1. slave
docker run -d --name mysql-slave -p 3307:3306 \
-e MYSQL_ROOT_PASSWORD=root mysql:5.7

2.主库配置

1.修改/etc/my.cnf文件,并开启binlog日志

#开启binlog日志,日志存放在/var/lib/mysql/master-bin   master-bin->可以自定义
log-bin=/var/lib/mysql/master-bin
#mysql 服务ID,保证整个集群环境中唯一,取值范围:1 – 232-1,默认为1
server-id=1
#是否只读,1 代表只读, 0 代表读写
read-only=0
#忽略的数据, 指不需要同步的数据库
#binlog-ignore-db=mysql
#指定同步的数据库
#binlog-do-db=db01

在这里插入图片描述

2.重启MySQL服务器

systemctl restart mysqld
  1. 客户端登录mysql,创建远程连接的账号,并授予主从复制权限
#创建linmaster用户,并设置密码,该用户可在任意主机连接该MySQL服务
CREATE USER 'linmaster'@'%' IDENTIFIED WITH mysql_native_password BY 'root';

#为 'itcast'@'%' 用户分配主从复制权限
GRANT REPLICATION SLAVE ON *.* TO 'linmaster'@'%';

#通过指令,查看二进制日志坐标
show master status ;

在这里插入图片描述

字段含义说明:

file : 从哪个日志文件开始推送日志文件

position : 从哪个位置开始推送日志

binlog_ignore_db : 指定不需要同步的数据库

3.从库配置

1.修改配置文件 /etc/my.cnf

#开启binlog日志,日志存放在/var/lib/mysql/master-bin   master-bin->可以自定义.从库不需要
#log-bin=/var/lib/mysql/master-bin
#mysql 服务ID,保证整个集群环境中唯一,取值范围:1 – 232-1,默认为1
server-id=2
#是否只读,1 代表只读, 0 代表读写
read-only=1
#忽略的数据, 指不需要同步的数据库
#binlog-ignore-db=mysql
#指定同步的数据库
#binlog-do-db=db01

2.重新启动MySQL服务

systemctl restart mysqld

3.客户端登录mysql,设置连接到主库配置信息.

#如果mysql是 8.0.23 之前的版本 命令

CHANGE MASTER TO MASTER_HOST='172.17.0.2', MASTER_USER='linmaster',
MASTER_PASSWORD='root', MASTER_LOG_FILE='master-bin.000002',
MASTER_LOG_POS=154;




#如果mysql是 8.0.23 之后的版本 命令

CHANGE REPLICATION SOURCE TO SOURCE_HOST='192.168.200.200', SOURCE_USER='itcast',
SOURCE_PASSWORD='Root@123456', SOURCE_LOG_FILE='binlog.000004',
SOURCE_LOG_POS=663;
参数名含义8.0.23****之前
SOURCE_HOST主库IP地址MASTER_HOST
SOURCE_USER连接主库的用户名MASTER_USER
SOURCE_PASSWORD连接主库的密码MASTER_PASSWORD
SOURCE_LOG_FILEbinlog日志文件名MASTER_LOG_FILE
SOURCE_LOG_POSbinlog日志文件位置MASTER_LOG_POS

4.启动slave

#启动slave

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


#暂停slave,master 宕机了. 需要手动重新配置上面的步骤3. 需要 先停止slave
stop slave;


5.查看slave状态

show replica status ; #8.0.22之后
show slave status ; #8.0.22之前

在这里插入图片描述

4.验证.

主库. 新增数据库. 新增表 .增删改. 从库都会同步过来…

注意. 从库 宕机了. 重启… 主机的变更还是会同步过来. 但是主机宕机了. 从机需要重新修改 连接主机的配置信息.

主库,查看binglog 位置和pos偏移量

#通过指令,查看二进制日志坐标
show master status ;

从库.修改链接主机的配置信息

#1.先停止slave
stop slave;

#2.修改链接信息
CHANGE MASTER TO MASTER_HOST='172.17.0.2', MASTER_USER='linmaster',
MASTER_PASSWORD='root', MASTER_LOG_FILE='master-bin.000002',
MASTER_LOG_POS=154;

#3.启动slave
start slave;
#4.查看状态,两个yes 就OK了;
show slave status;

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

七.numpy模块

NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。 NumPy 的前身 Numeric 最早是由 Jim Hugunin 与其它协作者共同开发,2005 年,Travis Oliphant…

测试用例小锦囊——基于思维导图的测试用例生成和维护

敲黑板,测试用例真的很重要! 测试用例是测试工作的基础,通过提供结构化和系统化的方法,来帮助验证软件产品的功能是否按预期正确实现,从而确保软件质量,提升用户满意度。 测试用例的关键要素包括用例编号、…

Linux网络命令:用于查看和修改路由表的重要工具ip route 详解

目录 一、概述 二、用法 1、基本语法 2、参数说明 3、常用选项 4、获取帮助 三、基本用法示例 1、 查看路由表 2、 添加路由 3、 删除路由 4、 修改路由 5、 添加默认路由 6、 删除默认路由 四、路由表管理 1、查看所有路由表 2、指定路由表 五、其他选项 1、…

银行信贷风控专题:Python、R 语言机器学习数据挖掘应用实例合集:xgboost、决策树、随机森林、贝叶斯等

银行信贷风控专题:Python、R 语言机器学习数据挖掘应用实例合集:xgboost、决策树、随机森林、贝叶斯等 原创 拓端研究室 全文链接:https://tecdat.cn/?p38026 在当今金融领域,风险管控至关重要。无论是汽车贷款违约预测、银行挖掘…

容器内pip安装Apache Airflow的经历:如何重置初始密码

背景 Apache Airflow™https://github.com/apache/airflow 是一个开源平台,用于开发、调度和监控面向批处理的工作流程。Airflow 可扩展的 Python 框架使您能够构建几乎可以连接任何技术的工作流程。Web 界面有助于管理工作流程的状态。Airflow 可以通过多种方式部…

RHCE作业四

一要求: 1.搭建dns服务器能够对自定义的正向或者反向域完成数据解析查询。 2.配置从DNS服务器,对主dns服务器进行数据备份。 二操作: 主服务器 1.安装 2主配置真反向 3正反设置 区域 1安装 2添加allow-transfer 3增量 4重启 Systemctl …

算法练习:1658. 将 x 减到 0 的最小操作数

题目链接:1658. 将 x 减到 0 的最小操作数 这道题目的意思就是,给定一个整数数组,和一个x,只能从数组最左边或者最右边进行删除,使得x恰好等于0,并且要操作次数最少的情况,否则返回-1. 这道题直…

职场如雷场,稍有不慎就会被炸翻?十大生存法则送给你

大多数人的一生都要经历过:求学,入职,退休三个阶段。其中职场生涯一般都在30至40年左右,占据了人生的大部分时间,而这段时间,是每个人最年富力强,精力充沛的时光。 那么,如何把这人…

这款神器,运维绝杀 !!!

项目简介 CrowdSec 是一款开源的、基于社区协作的网络安全防护工具,它通过分析和共享IP信誉数据来对抗恶意行为。该软件不仅支持IPv6,而且相较于传统的Python实现,其采用Go语言编写,运行速度提升了60倍。CrowdSec 利用Grok模式解析…

[C++] cpphttplib使用https而不是http

前言 首先我们假设是直接使用 httplib.h 的源文件。 支持 https 根据readme来看,需要开启一个宏,链接libssl和libcrypto就可以了。 下载openssl 保姆级OpenSSL下载及安装教程 选择非light的版本,这样才会有头文件和lib库引入文件。 编写C…

gitee 使用 webhoot 触发 Jenkins 自动构建

一、插件下载和配置 Manage Jenkins>Plugin Manager 搜索 gitee 进行安装 插件配置 1、前往Jenkins -> Manage Jenkins -> System -> Gitee Configuration -> Gitee connections 2、在 Connection name 中输入 Gitee 或者你想要的名字 3、Gitee host URL 中…

MDC(重要)

1.简介 MDC 介绍​ MDC(Mapped Diagnostic Context,映射调试上下文)是 log4j 和 logback 提供的一种方便在多线程条件下记录日志的功能。MDC 可以看成是一个与当前线程绑定的Map,可以往其中添加键值对。MDC 中包含的内容可以被同一…

Linux—进程学习-01

目录 Linux—进程学习—11.冯诺依曼体系结构2.操作系统2.1操作系统的概念2.2操作系统的目的2.3如何理解管理2.4计算机软硬件体系的理解2.5系统调用和库函数的概念 3.进程3.1进程是什么3.2管理进程3.2.1描述进程-PCB3.2.2组织进程3.2.3总结 3.3查看进程 4.与进程有关的系统调用 …

初始JavaEE篇——多线程(5):生产者-消费者模型、阻塞队列

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程程(ಥ_ಥ)-CSDN博客 所属专栏:JavaEE 文章目录 阻塞队列生产者—消费者模型生产者—消费者模型的优势:生产者—消费者模型的劣势: Java标准库中的阻…

Redis常见面试题(二)

Redis性能优化 Redis性能测试 阿里Redis性能优化 使用批量操作减少网络传输 Redis命令执行步骤:1、发送命令;2、命令排队;3、命令执行;4、返回结果。其中 1 与 4 消耗时间 --> Round Trip Time(RTT,…

Scala学习记录,List

List是一个不可变(immutable)的序列。特点:数据是有序的 前面学习的Set,Map数据是无序的;Array是有序的,Array数组物理空间上是连续的 List可变不可变: list中不可变的列表是不能修改的 list…

【从零开始的LeetCode-算法】1456. 定长子串中元音的最大数目

给你字符串 s 和整数 k 。 请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。 英文中的 元音字母 为(a, e, i, o, u)。 示例 1: 输入:s "abciiidef", k 3 输出:3 解释&#xff1a…

0-基于图的组合优化算法学习(NeurIPS 2017)(未完)

文章目录 Abstract1 Introduction2 图上的贪婪算法的通用表述3 表示:图嵌入3.1 Structure2Vec3.2 参数化 Q ^ ( h ( S ) , v ; Θ ) \widehat{Q}(h(S), v; \Theta) Q ​(h(S),v;Θ)4 Training: Q-learningAbstract 为NP-hard组合优化问题设计好的启发式或近似算法通常需要大…

RK3568平台开发系列讲解(设备树篇)设备树(device Tree)的由来

🚀返回专栏总目录 文章目录 一、设备树的由来二、设备树的组成沉淀、分享、成长,让自己和他人都能有所收获!😄 一、设备树的由来 首先不得不提到Linus的一封重要的邮件:(硬件解耦)(可以复用的代码) Gaah. Guys, this whole ARM thing is a f*cking pain in the ass.…

基于C++深度优先遍历迷宫

c实现的深度优先遍历迷宫,迷宫大小为20*20,代码简练清楚,内涵关键注释。代码与网上都不一样。 深度优先遍历迷宫,核心思想是借助一个栈,站在一个节点上时,将它附近可以走的节点存在栈中,再按顺…