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

devtools/2024/11/7 5:10:13/

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

dockermysql_2">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

#启动slavestart 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;

http://www.ppmy.cn/devtools/131921.html

相关文章

计算机视觉的研究方向和相应算法

计算机视觉是一个广泛的领域,涵盖了多种研究方向和算法。以下是对计算机视觉研究方向及其相关算法的详细介绍: 研究方向图像识别与分类:研究如何让计算机识别并分类图像中的对象,如车辆、人脸、动物等。 目标检测与跟踪&#xff1…

搜索引擎之shodan(一):初始化及安装

声明:学习素材来自b站up【泷羽Sec】,侵删,若阅读过程中有相关方面的不足,还请指正,本文只做相关技术分享,切莫从事违法等相关行为,本人一律不承担一切后果 引言: 1.Shodan 是一个专门用于搜索连…

自动驾驶---理想汽车智驾进展

1 背景 自媒体---“电车通”从2024年初开始推出智能化评测相关栏目,尤其是针对智能驾驶这一功能做了大量的实测工作;根据综合表现,给测试车型给出了能够直观展示其能力的评分。当评测的对象达到一定数量后,对整个国内车市智驾能力…

数据库动态扩容:Java实现与技术策略

引言 数据库动态扩容是应对数据量增长和业务需求变化的关键技术。它允许数据库系统在不停机的情况下,通过增加或减少资源来适应业务负载的变化。本文将详细介绍数据库动态扩容的工作原理、技术策略,并提供Java代码示例。 1. 数据库动态扩容的工作原理 …

RK3588开发笔记-5G模块(SIM8200、广和通FM160、移远RM500U)调试笔记

目录 前言 一、基本配置要求 二、原理图连接 三、驱动移植修改 四、程序拨号 总结 前言 RK3588 CPU提供了丰富的外设接口,本文主要介绍通过usb3.0接口驱动5G模块来实现5g无线数据传输功能。在物联网和边缘计算领域,5G网络支持的高速率、低延时连接为应用带来了更多可能性…

Rust 力扣 - 1652. 拆炸弹

文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 我们只需要遍历长度长度为k的窗口&#xff0c;然后把窗口内数字之和填充到结果数组中的对应位置即可 题解代码 impl Solution {pub fn decrypt(code: Vec<i32>, k: i32) -> Vec<i32> {let n c…

【华为HCIP实战课程三十】中间到中间系统协议IS-IS路由渗透及TAG标识详解,网络工程师

一、路由泄露 1、默认情况Level 1不会学到Level2的明细路由&#xff0c;L2可以学到L1的明细路由 2、FIB数据转发&#xff0c;路由负载&#xff0c;通过随机数据中的五元组hash,hash值决定数据走哪条链路 R1设备ping和telnet通过抓包查看走的都是S1/0/0接口 抓包进行过滤;ip.a…

qt QMessageBox详解

1、概述 QMessageBox是Qt库中的一个类&#xff0c;它用于在图形用户界面&#xff08;GUI&#xff09;程序中显示消息框。消息框是一种用于向用户显示信息、警告、错误或询问用户确认的对话框。QMessageBox可以显示文本、图标和按钮&#xff0c;并允许自定义按钮的文本和功能。…