Mysql搭建互为主从数据库

news2024/11/24 6:08:18

Mysql搭建互为主从数据库

  • 一、搭建前期说明
  • 二、mysql文件结构以及配置说明
    • 1、mysqlA文件结构
    • 2、mysqlB文件结构
    • 3、mysqlA的配置文件my.cnf
    • 4、mysqlB的配置文件my.cnf
    • 5、启动mysqlA服务器脚本startMysqlA.sh
    • 6、启动mysqlB服务器脚本startMysqlB.sh
    • 7、查看服务启动情况
  • 三、设置主从同步
    • 1、给同步用户cjd重新赋予权限
    • 2、mysqlA开启对B的同步
    • 3、mysqlB开启对A的同步

一、搭建前期说明

mysql的版本为5.7
搭建平台为centos7
服务启动为docker
搭建的两台mysql数据库名为mysqlA和mysqlB
mysqlA端口56612
mysqlB端口56613

二、mysql文件结构以及配置说明

1、mysqlA文件结构

/home/cjd/middleware/mysqlA
	----/data	数据存储路径
	----/log		日志存储路径
		----mysqld.log
		----mysql.err
	----/conf	
		---- my.cnf	mysql配置文件
	----/mysql-files
	----startMysqlA.sh 数据库A的启动脚本

2、mysqlB文件结构

mysqlB文件结构与A相似,此处不做赘述

3、mysqlA的配置文件my.cnf

Mysql数据库搭建互为主从mysqlA的配置文件

4、mysqlB的配置文件my.cnf

Mysql数据库搭建互为主从mysqlB的配置文件

5、启动mysqlA服务器脚本startMysqlA.sh

启动前说明:
	1、需讲日志文件中的mysqld.log和mysql.err设置全员可读写
	2、cjd用户作用从库同步用户

docker run -d \
	--name mysqlA \
	-p 56612:3306 \
	-e MYSQL_ROOT_PASSWORD=Mysql@ms2016 \
	-e MYSQL_USER=cjd \
	-e MYSQL_PASSWORD=Mysql@ms2016 \
	-v /etc/localtime:/etc/localtime \
	-v /home/cjd/middleware/mysqlA/data:/var/lib/mysql \
	-v /home/cjd/middleware/mysqlA/log:/var/log \
	-v /home/cjd/middleware/mysqlA/conf:/etc/mysql \
	-v /home/cjd/middleware/mysqlA/mysql-files:/var/lib/mysql-files \
	--restart=always \
	mysql:5.7

6、启动mysqlB服务器脚本startMysqlB.sh

启动前说明:
	1、需讲日志文件中的mysqld.log和mysql.err设置全员可读写
	2、cjd用户作用从库同步用户
	
docker run -d \
	--name mysqlB \
	-p 56613:3306 \
	-e MYSQL_ROOT_PASSWORD=Mysql@ms2016 \
	-e MYSQL_USER=cjd \
	-e MYSQL_PASSWORD=Mysql@ms2016 \
	-v /etc/localtime:/etc/localtime \
	-v /home/cjd/middleware/mysqlB/data:/var/lib/mysql \
	-v /home/cjd/middleware/mysqlB/log:/var/log \
	-v /home/cjd/middleware/mysqlB/conf:/etc/mysql \
	-v /home/cjd/middleware/mysqlB/mysql-files:/var/lib/mysql-files \
	--restart=always \
	mysql:5.7

7、查看服务启动情况

在这里插入图片描述
如图代表启动成功

三、设置主从同步

1、给同步用户cjd重新赋予权限

	mysqlA和mysqlB做相同的操作
	
	1、docker 登录mysql服务器
		 docker exec -it mysqlA mysql -uroot -p
	2、重新赋予权限
		grant all privileges ON *.* to 'cjd'@'%';
		(如果使用的mysql8需要刷新权限)flush privilieges; 
	3、查看权限
		show grants for 'slave_user'@'%';

2、mysqlA开启对B的同步

1、记录主库bin位置信息
	在mysqlB的数据库中 show master status; 
2、如果已经开启主从需先关闭后开启
	stop slave;
	change master to MASTER_HOST='192.168.180.127', 	MASTER_PORT=56613, MASTER_USER='cjd', MASTER_PASSWORD='Mysql@ms2016', MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=400;
	start slave;
3、查看主从同步状态
	show slave status\G

在这里插入图片描述
最看到同步状态如图所示代表mysqlA已经开启对B的同步

3、mysqlB开启对A的同步

1、记录主库bin位置信息
	在mysqlA的数据库中 show master status; 
2、如果已经开启主从需先关闭后开启
	stop slave;
	change master to MASTER_HOST='192.168.180.127', 	MASTER_PORT=56612, MASTER_USER='cjd', MASTER_PASSWORD='Mysql@ms2016', MASTER_LOG_FILE='mysql-bin.000003', MASTER_LOG_POS=400;
	start slave;
3、查看主从同步状态
	show slave status\G
	成功的状态图与A相同

至此mysql互为主从已经搭建成功

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

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

相关文章

【Redis】之缓存一致性

1、缓存一致性 对于使用 Redis 作为缓存来说,如何保证数据库和缓存数据一致性是个麻烦的问题。对于缓存和数据库的操作,主要有以下两种方式: 先删缓存,再更新数据库;先更新数据库,再删除缓存;…

【UE4 塔防游戏系列】02-基础设置

步骤 1. 新建一个蓝图,父类为游戏模式基础 命名为“TaFangGameMode” 2. 新建一个玩家控制器 命名为“TaFangGamePlayerController” 3. 在世界场景设置中,选择游戏覆盖模式为“TaFangGameMode” 默认Pawn类设为None,玩家控制器类选择“TaFa…

使用rest-assured框架优雅实现接口测试断言

对于接口测试来说,只判断响应状态码为200是远远不够的,我们经常必须去验证响应内容中的业务字段是否正确,本文将采用Rest-Assured框架来实现接口响应的判断。 1、接口信息的调试 当我们在做接口测试时,通常希望将接口的请求及响…

包装类(wrapper)

包装类(wrapper) 包装类和基本数据类型间的转换(Interger演示) public class WrapperType01 {public static void main(String[] args) {int a 10;// 手动封箱,Integer integer Integer.valueOf(a);System.out.println(integer);// 手动拆箱int i integer.intVa…

十五周算法训练营——岛屿问题

今天是十五周算法训练营的第十五周,主要讲岛屿问题专题。(欢迎加入十五周算法训练营,与小伙伴一起卷算法) 岛屿问题 一、题目 给你一个由 1(陆地)和 0(水)组成的的二维网格&#xff…

11. 利用Tomcat服务器配置HTTPS双向认定

文章目录 Tomcat配置HTTPS1.为服务器生成证书2.为客户端生成证书3.让服务器信任客户端证书4.将该文件导入到服务器的证书库,添加为一个信任证书使用命令如下:5.查看证书库6.让客户端信任服务器证书7.配置tomcat8.验证 Tomcat配置HTTPS 1.启动cmd控制台&…

分布式锁【分布式锁概述、业务介绍、创建SpringBoot项目】(一)-全面详解(学习总结---从入门到深化)

目录 分布式锁概述 分布式锁问题_业务介绍 分布式锁问题_创建SpringBoot项目 分布式锁概述 为什么需要分布式锁 在单机部署的系统中,使用线程锁来解决高并发的问题,多线程访问共享变量的问题达到数据一致性,如使用synchornized、 Reentran…

第一堂棒球课品牌设计·棒球1号位

需求背景 第一堂棒球课作为国内的创新体育课程,旨在为广大青少年提供一个更好的平台来接触并了解棒球这项运动。品牌的建设将影响到其在国内的认可度和知名度。在此背景下,我们的产品目标是为第一堂棒球课打造一个具有竞争力的品牌形象,满足…

基于jeecg-boot的nbcio-boot亿事达企业管理平台发布

目前这个演示系统与代码都同步,以后也尽量保持同步。 更多功能看演示系统 gitee源代码地址 后端代码: https://gitee.com/nbacheng/nbcio-boot 前端代码:https://gitee.com/nbacheng/nbcio-vue.git 在线演示(包括H5&#xff…

「Java核心技术大会 2023」6月启动,邀你共同探讨Java生态

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

数据结构 | 图的最短路径 Floyd算法

一、数据结构定义 typedef int VertexType; typedef int EdgeType;/*图*/ typedef struct {VertexType Vexs[SIZE]; //结点 EdgeType Edges[SIZE][SIZE]; //权值 int vexnum, arcnum; }MGraph;/*路径*/ typedef struct {int path[SIZE][SIZE];EdgeType length; }Path; 1.二维…

给父组件添加点击事件,点击时获取父组件的target

我想获取class为 mes-it 的dom元素结果每次拿到的 target都是子元素 查了查资料可以用 pointer-events: none; 来规避子元素成为target 就是上面图片style 里面的样式

【图灵奖得主Frederick P.Brooks, Jr.带你走进软件工程的世界——《人月神话》】

畅销业界48年的传奇经典 被引频次最高的软工神话 本书为复杂项目管理提供了极具洞察力的见解、发人深省的观点以及大量的软件工程实践。 直至今天,《人月神话》依然活跃在软件开发各个领域的话题中! 我是一个书狂,积习甚深,费尽心…

Python自动化测试五大框架(测试员收藏夹必备)

自2018年被评选为编程语言以来,Python在各大排行榜上一直都是名列前茅。目前,它在Tiobe指数中排名第三个,仅次于Java和C。随着该编程语言的广泛使用,基于Python的自动化测试框架也应运而生,且不断发展与丰富。 因此&am…

PyQt5调用Window弹窗,选择文件、选择多个文件、选择文件夹、保存文件

前言 本篇在讲什么 PyQt5调取windows选择和导出弹窗 本篇适合什么 适合初学Python的小白 适合使用pyqt5的开发项目 本篇需要什么 对Python语法有简单认知 依赖Python3.7环境 依赖Pycharm编辑器 本篇的特色 具有全流程的图文教学 重实践,轻理论&#xf…

01. 找到数组的中间位置 ——【Leetcode每日一题】

1991. 找到数组的中间位置 难度:简单 给你一个下标从 0 开始的整数数组 nums ,请你找到 最左边 的中间位置 middleIndex (也就是所有可能中间位置下标最小的一个)。 中间位置 middleIndex 是满足 nums[0] nums[1] … nums[m…

【dc-dc】降压恒压电源管理IC 平衡车控制器 电动车控制器 以太网交换机驱动芯片

产品 AP8851 一款宽电压范围降压型DC-DC 电源管理芯片,内部集成使能开关控制、基准电源、误差放大器、过热保护、限流保护、短路保护等功能,非常适合在宽输入电压范围具有优良的负载和线性调整度。AP8851 芯片包含每周期的峰值限流、软启动、过压保护和…

【计算机视觉 | 目标检测】术语理解9:AIGC的理解,对比学习,解码器,Mask解码器,耦合蒸馏,半耦合,图像编码器和组合解码器的耦合优化

文章目录 一、AIGC的理解二、对比学习三、解码器四、Mask解码器五、耦合蒸馏六、半耦合七、图像编码器和组合解码器的耦合优化 一、AIGC的理解 AIGC指的是使用人工智能技术自动生成的各类数字内容,包括文本、图像、音频、视频等。它利用机器学习模型进行智能化内容生成。 主要…

Oracle快速将A库的数据库对象同步到B库(包括数据)

1.在pl/sql中导出A的用户对象 2.导出表数据,直接导PDE文件 如果PDE不行的话就到选择第一个dmp 3.然后把用户B的对象重新创建一遍,数据导进去。 创建对象的时候table和sequence都要删掉重新创建,不然会报已存在。

你会合并数组吗?采用数组大小顺序排列合并C语言实现

第一个代码块进行的是两个数组进行合并,然后顺序排列出来定义两个数组里面各有几个元素然后采用循环输入相应的数字,这里注意是要在每一个数组中顺序排列的,也就是从大到小输入之后采用循环进行比较比较完跳出循环后因为两个数组中元素个数不…