【docker安装Mysql并配置主从复制】

news2025/2/25 16:56:33

Mysql主从复制

目的:

是为了后面naocs集群的服务配置做准备工作

准备工作

准备至少两台虚拟机或服务器,安装好了docker,找到他们的ip地址
在这里插入图片描述
在这里插入图片描述

后面操作都用xshell操作来代替

在这里插入图片描述

拉取并启动mysql镜像和容器
主机的命令为mysql01,对外端口用3310来连接
docker run -d -p 3310:3306 -v /home/mysql/node-1/config:/etc/mysql/ -v/home/mysql/node-1/data:/var/lib/mysql  -e MYSQL_ROOT_PASSWORD=123456  --name mysql01 mysql:5.7
从机的命名为mysql02,对外端口用3311来连接
docker run -d -p 3311:3306 -v /home/mysql/node-2/config:/etc/mysql/ -v/home/mysql/node-2/data:/var/lib/mysql  -e MYSQL_ROOT_PASSWORD=123456 --name mysql02 mysql:5.7
命令解释:

-d: 后台运行容器,并返回容器ID
-p 3311:3306 :将容器的3306端口映射到宿主机3310端口
-e MYSQL_ROOT_PASSWORD=123456 :配置数据库连接密码
-v /home/mysql/node-2/config:/etc/mysql/ :将配置文件夹挂载到宿主机
–name mysql01(02):将容器命名为 mysql01(02)

docker ps -a #查看全部容器(运行中加未运行的)分别查看mysql容器的状态

在这里插入图片描述

在这里插入图片描述

  都处于正常运行状态
下面用navicat连接两个数据库

都正常连接
在这里插入图片描述
在这里插入图片描述

开始主从复制的配置

之前我们启动的时候写了这句-v /home/mysql/node-1/config:/etc/mysql/,将mysql 的配置文件夹和主机的文件夹挂载起来的。
那么我们就可以直接在主机下的/home/mysql/node-1/config/编写配置文件了,
那么从机下的就是/home/mysql/node-2/config/编写配置文件了。

进入主机操作:
cd /home/mysql/node-1/config/
vim my.cnf
复制下面内容进去
[mysqld]
#修改配置文件:vim /etc/my.cnf
#主服务器唯一ID
server_id=1
#启用二进制日志
log-bin=mysql-bin

设置不要复制的数据库(可设置多个)

binlog-ignore-db=mysql
binlog-ignore-db=information_schema
#设置需要复制的数据库 需要复制的主数据库名字,多个数据库的话,需要多行书写即可,不可逗号连接
binlog-do-db=testdb
#设置logbin格式
binlog_format=STATEMENT
然后esc-> :wq 保存

进入从机操作

cd /home/mysql/node-2/config/
vim my.cnf
复制下面的内容
[mysqld]
#从服务器唯一ID
server_id=2
#启用中继日志
relay-log=mysql-relay
然后esc-> :wq 保存

分别在主从机上,用命令docker restart mysql01 和 docker restart mysql02 重启mysql的容器

搭建主从复制

在这里插入图片描述

进入主机的mysql
docker exec -it mysql01 /bin/bash #进入容器
mysql -uroot -p123456 #连接mysql

主机上建立帐户并授权 slave
给从机授权,为了让从机能够和主机连接起来。
GRANT REPLICATION SLAVE ON . TO ‘slave’@‘%’ IDENTIFIED BY ‘123456’;
复制
在这里插入图片描述

查询master状态
show master status; #查询master的状态
在这里插入图片描述

把这里的File和Position记下来哈,等下在从机上要用到。
File: mysql-bin.000003
Position: 438
复制
Binlog_Do_DB:需要复制的数据库。
Binlog_Ignore_DB:不需要复制的数据库。
注意:此步骤后不要再操作主服务器MySQL,防止主服务器状态值变化
由此进入从机操作:
进入mysql02容器
docker exec -it mysql02 /bin/bash
mysql -uroot -p123456
输入命令
CHANGE MASTER TO MASTER_HOST=‘主机的ip地址’,MASTER_USER=‘slave’,MASTER_PASSWORD=‘123456’,MASTER_PORT=3310, MASTER_LOG_FILE=‘mysql-bin.000003’,MASTER_LOG_POS=438;
解释:
CHANGE MASTER TO MASTER_HOST=‘主机的IP地址’,
MASTER_USER=‘slave’(刚刚配置的用户名),
MASTER_PASSWORD=‘123456’(刚刚授权的密码),
master_port=主机开放的端口 我这里是3310端口,
MASTER_LOG_FILE=‘mysql-bin.具体数字’,MASTER_LOG_POS=具体值(之前的Position);
在这里插入图片描述

注意事项:如果在这里出现错误,先重置。执行完下面两条命令。
stop slave;
reset master;
复制
启动从服务器复制功能
start slave;

查看从服务器状态
show slave status\G
在这里插入图片描述
在这里插入图片描述

#下面两个参数都是Yes,则说明主从配置成功!
Slave_IO_Running: Yes
Slave_SQL_Running: Yes

测试,主机的testdb库都会及时同步过去

在这里插入图片描述

现在主库的表里没数据,添加一条
在这里插入图片描述

查看从库的数据,也存在了

到此一主一从的mysql主从复制就完成了。
在这里插入图片描述

mysql主从复制的优点:

1、数据更安全:做了数据冗余,不会因为单台服务器的宕机而丢失数据
2、性能大大提升:一主多从,不同用户从不同数据库读取,性能提升
3、扩展性更优:流量增大时,可以方便的增加从服务器,不影响系统使用
4、负载均衡:一主多从相当于分担了主机任务,做了负载均衡。

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

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

相关文章

综述 | 实时三维形状测量技术的综述

原创 | 文 BFT机器人 随着人工智能和机器人技术的快速发展,实时三维形状测量技术变得愈发重要。由于机器人通常在动态环境中操作,因此机器人装备的三维形状测量技术需要能够实时从运动的物体中获取三维形状信息。未来的三维机器视觉技术实际上依赖于实时…

个人博客搭建记录

个人博客地址:www.jiasun.top 使用github pagehexo搭建,主题为fluid,搭建步骤参照:Github hexo 实现自己的个人博客、配置主题(超详细) 主题:https://hexo.fluid-dev.com/ 搭建时的问题&…

eNSP模拟器!通过Cloud云使本机与模拟器互通,成功通过ssh登陆设备!

首先配置云接口: 配置路由器IP地址: [Huawei]int g 0/0/0 [Huawei-GigabitEthernet0/0/0]ip ad 192.168.56.2 24 用本机去ping路由器,路由器成功与本机互通。 ssh登陆配置: [Huawei]user-interface vty 0 4 [Huawei-ui-vty0-4]…

计算物理专题----随机游走实战

计算物理专题----随机游走实战 Problem 1 Implement the 3D random walk 拟合线 自旋的 拟合函数(没有数学意义) 参数:0.627,3.336,0.603,-3.234 自由程满足在一定范围内的均匀分布以标准自由程为单位长度,…

ETHERCAT转MODBUS TCP/IP协议网关

产品介绍 JM-ECT-TCPIP是自主研发的一款EtherCAT从站功能的通讯网关。该产品主要功能是将EtherCAT网络和 TCP/IP 网络连接起来。 本网关连接到EtherCAT总线中做为从站使用,连接到 TCP/IP 网络中做为服务器或客户端使用。 产品参数 技术参数 u 网关做为EtherCAT网…

Docker容器数据持久化存储机制

这里写目录标题 一、Docker容器数据持久化存储介绍二、Docker容器数据持久化存储方式三、Docker容器数据持久化存储方式应用案例演示3.1 docker run -v3.1.1 创建了本地目录3.1.2 未创建本地目录 3.2 volumes3.2.1 创建数据卷3.2.2 使用数据卷 一、Docker容器数据持久化存储介绍…

Dynaform 7.0安装说明教程

Dynaform 7.0安装说明教程 1.安装ANSYS License Manager 2023R2 2.用有裂纹的程序文件夹覆盖原始<ANSYS Inc>程序文件夹&#xff08;默认设置为&#xff1a;C:\program Files\ANSYS Inc&#xff09; 3.运行程序>ANSYS&#xff0c;股份有限公司许可管理器>ANSYS许…

安装封箱机需要的条件

任何设备的安装都需要一定的场地条件&#xff0c;封箱机产品也不例外&#xff0c;对于初次使用封箱机的用户&#xff0c;我们会仔细提醒客户需要准备的条件&#xff0c;今天就把这些条件和大家分享一下&#xff0c;方便您今后更方便的使用封箱机产品。 1、适当的场地。用户在购…

【C++】C++11——构造、赋值使用条件和生成条件

移动构造和移动赋值生成条件移动构造和移动赋值调用逻辑强制生成默认函数的关键字default禁止生成默认函数的关键字delete 移动构造和移动赋值生成条件 C11中新增的移动构造函数和移动赋值函数的生成条件为&#xff1a; 移动构造函数的生成条件&#xff1a;没有自己实现的移动…

Redis GEO 类型与 API 结合,地理位置优化的绝佳实践

&#x1f52d; 嗨&#xff0c;您好 &#x1f44b; 我是 vnjohn&#xff0c;在互联网企业担任 Java 开发&#xff0c;CSDN 优质创作者 &#x1f4d6; 推荐专栏&#xff1a;Spring、MySQL、Nacos、Java&#xff0c;后续其他专栏会持续优化更新迭代 &#x1f332;文章所在专栏&…

Linux下的网络编程——网络基础、socket编程(一)

前言&#xff1a; 前面我们学习了Linux的系统编程&#xff0c;从今天我们就要开始Linux网络编程的学习了&#xff0c;Linux网络编程中的知识点可能没有前面的Linux系统多一点&#xff0c;但是基础的网络知识我们还是需要了解的&#xff0c;并且网络编程中的socket编程的知识也…

打赏收款收银台多合一支付收款HTML源码

多合一打赏支付收款&#xff08;微信、QQ、支付宝&#xff09; 源码直接上传到服务器解压缩即可访问,或者用本地浏览器打开访问 PS&#xff1b;只需要将自己的收款二维码替换即可 该源码全开源无加密&#xff0c;所有操作均在本地无需调用外部资源防止失效&#xff01; 源码…

微前端架构的几种技术选型

微前端架构的几种技术选型随着SPA大规模的应用&#xff0c;紧接着就带来一个新问题&#xff1a;一个规模化应用需要拆分。 一方面功能快速增加导致打包时间成比例上升&#xff0c;而紧急发布时要求是越短越好&#xff0c;这是矛盾的。另一方面当一个代码库集成了所有功能时&am…

【校招VIP】java语言考点之反射

考点介绍&#xff1a; java的反射(reflection)机制是指在程序的运行状态中&#xff0c;可以构造任意一个类的对象&#xff0c;可以了解任意一个对象所属的类&#xff0c;可以了解任意一个类的成员变量和方法&#xff0c;可以调用任意一个对象的属性和方法。这种动态获取程序信息…

探索工业路由器如何助力无人驾驶方案的突破性解析

随着无人驾驶技术的发展&#xff0c;越来越多的企业和组织开始部署无人驾驶车辆来提高运输效率和安全性。在这些方案中&#xff0c;工业路由器被广泛应用于建立稳定、安全和高效的通信网络。在本篇文章中&#xff0c;我们将分享一个真实的无人驾驶方案部署案例&#xff0c;其中…

laravel设置与获取header请求头

laravel设置与获取header请求头 设置 <?phpnamespace App\Http\Controllers\Text;use Illuminate\Http\Request; use App\Http\Controllers\Controller;class TextController extends Controller {public function TextCC(Request $request){$token $request->header(j…

【函数进阶】

函数进阶 1 本节目标2 函数的定义和调用2.1 函数的定义方式2.2 函数的调用方式 3 this3.1 函数内 this 的指向3.2 改变函数内部 this 的指向3.2.1 call方法3.2.2 apply方法3.2.3 bind方法3.2.4 call apply bind 总结 4 严格模式4.1 什么是严格模式4.2 开启严格模式4.2.1 为脚本…

【校招VIP】交流技巧之面试时合理表达观点

考点介绍&#xff1a; 交流和表达是产品的面试最重要的考查点之一&#xff0c;也是产品必备工作技能。如果在面试中不能合理的与面试官沟通&#xff0c;或者不能把自己的思路和分析有逻辑的表达出来&#xff0c;都会对面试结果产生不好的影响。 交流技巧之面试时合理表达观点-…

【网络协议】Http-下

因为Http是无状态的&#xff0c;所以为了协助 Web 保持状态&#xff0c;Cookie 诞生了。 下面中是百度百科关于Cookie和Session的解释&#xff1a; Cookie&#xff1a;举例来说, 一个 Web 站点可能会为每一个访问者产生一个唯一的ID, 然后以 Cookie 文件的形式保存在每个用户的…