MySQL主从搭建,实现读写分离(基于docker)

news2024/11/25 10:02:51

一 主从配置原理

mysql主从配置的流程大体如图:
1)master会将变动记录到二进制日志里面;
2)master有一个I/O线程将二进制日志发送到slave;
3) slave有一个I/O线程把master发送的二进制写入到relay日志里面;
4)slave有一个SQL线程,按照relay日志处理slave的数据;

在这里插入图片描述

二 操作步骤

2.1我们准备两台装好mysql的服务器(我在此用docker模拟了两台机器)

环境mysql版本ip地址:5.7172.16.209.100:33307
从库(slave)5.7172.16.209.100:33306

# 拉取mysql5.7镜像
docker pull mysql:5.7
#在home目录下创建mysql文件夹,下面创建data和conf.d文件夹
mkdir /home/mysql
mkdir /home/mysql/conf.d
mkdir /home/mysql/data/
 
创建my.cnf配置文件
touch /home/mysql/my.cnf

my.cnf添加如下内容:
[mysqld]
user=mysql
character-set-server=utf8
default_authentication_plugin=mysql_native_password
secure_file_priv=/var/lib/mysql
expire_logs_days=7
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
max_connections=1000

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8
#启动主库容器(挂载外部目录,端口映射成33307,密码设置为123456)
docker run  -di -v /home/mysql/data/:/var/lib/mysql -v /home/mysql/conf.d:/etc/mysql/conf.d -v /home/mysql/my.cnf:/etc/mysql/my.cnf -p 33307:3306 --name mysql-master -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7
#启动从库容器(挂载外部目录,端口映射成33306,密码设置为123456)
docker run  -di -v /home/mysql2/data/:/var/lib/mysql -v /home/mysql2/conf.d:/etc/mysql/conf.d -v /home/mysql2/my.cnf:/etc/mysql/my.cnf -p 33306:3306 --name mysql-slave -e MYSQL_ROOT_PASSWORD=123456 mysql:5.7

2.2 远程连接入主库和从库

连接主库

#连接主库
mysql -h 172.16.209.100 -P 33307 -u root -p123456
#在主库创建用户并授权
##创建test用户
create user 'test'@'%' identified by '123';
##授权用户
grant all privileges on *.* to 'test'@'%' ;
###刷新权限
flush privileges;
#查看主服务器状态(显示如下图)
show master status;

连接从库

#连接从库
mysql -h 172.16.209.100 -P 33306 -u root -p123456
#配置详解
/*
change master to 
master_host='MySQL主服务器IP地址', 
master_user='之前在MySQL主服务器上面创建的用户名', 
master_password='之前创建的密码', 
master_log_file='MySQL主服务器状态中的二进制文件名', 
master_log_pos='MySQL主服务器状态中的position值';
*/
#命令如下
change master to master_host='172.16.209.100',master_port=33307,master_user='test',master_password='123',master_log_file='mysql-bin.000005',master_log_pos=0;
#启用从库
start slave;
#查看从库状态(如下图)
show slave status\G;

2.3 测试主从同步

#在主库上创建数据库test1
create database test1;
use test1;
#创建表
create table tom (id int not null,name varchar(100)not null ,age tinyint);
#插入数据
insert tom (id,name,age) values(1,'xxx',20),(2,'yyy',7),(3,'zzz',23);
#在从库上查看是否同步成功
#查看数据库
show database;
use test1;
#查看表
show tables;
#查看数据
select * from test1;

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

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

相关文章

并查集模版以及两道例题

💯 博客内容:并查集 😀 作  者:陈大大陈 🚀 个人简介:一个正在努力学技术的准C后端工程师,专注基础和实战分享 ,欢迎私信! 💖 欢迎大家:这里是C…

贴片电容规格怎么看?

贴片电容规格怎么看? 原理图中的电容参数给的数值,目的是便于分析电路。而采购的电容,所给的参数是一串字母和数字组成的字符串,来料检查人员必须根据料单,判断来料是否合格。有时,在一些面试场合&#xf…

浅谈测试需求分析

一、什么是需求分析 小编理解的需求分析就是要弄清楚用户需要的是什么功能,用户会怎样使用系统。这样测试时才能更清楚的知道系统该怎么样运行,才能更好的设计测试用例,才能更好的测试。 测试需求分析是测试工作的第一步,经过需…

NOIP2023模拟12联测33 D. 滈葕

NOIP2023模拟12联测33 D. 滈葕 文章目录 NOIP2023模拟12联测33 D. 滈葕题目大意思路code 题目大意 思路 放一段题解的材料 ABO 血型系统是血型系统的一种,把血液分为 A,B,AB,O 四种血型。血液由红细胞和血清等组成,红细胞表面 有凝集原,血清…

ChatGPT新功能曝光!OpenAI首届开发者大会抢先看

OpenAI将于太平洋时间11月6日早上10点举办首届全球开发者大会(大约北京时间11月7日凌晨2点),与来自世界各地的开发者、企业、技术合作伙伴,分享OpenAI最新产品和技术趋势。 由于OpenAI的金字招牌太响,已经有不少人迫不…

2023(第四届)江西开放数据创新应用大赛等你来挑战!

邀请函 这是一个友好的邀请。无论你是数据领域的专家、学生还是爱好者,我们都欢迎你加入这个平台。这不仅仅是一场比赛,更是一个交流、学习和展示自己的机会。 丰厚奖金:我们为参赛者准备了总计15W的奖金池,期待你的才华在这里得…

linux环境下LSI RAID卡在线扩盘和系统分区扩容简易操作

重要提醒 --- 数据安全--- 备份 备份 备份!!! 一、RAID工具Storcli Storcli管理工具下载 https://download.lenovo.com/servers/mig/2022/06/01/55714/lnvgy\_utl\_raid\_mr3.storcli-007.2008.0000.0000-0\_linux\_x86-64.tgz Storcli工…

Python类继承(单继承)

自定义“鸟”类,“鸣禽”、“猛禽”继承自“鸟”类,“画眉”、“百灵”继承自“鸣禽”,“鹰”、“雕”继承自“猛禽”。 (笔记模板由python脚本于2023年11月06日 19:08:56创建,本篇笔记适合初通Python类的coder翻阅) 【学习的细节…

基于ssm+jsp背单词系统的设计与实现

ssm背单词系统,java记单词系统,背单词系统 运行环境: JAVA版本:JDK1.8 IDE类型:IDEA、Eclipse都可运行 数据库类型:MySql(8.x版本都可) 硬件环境:Windows 角色&#xff…

力扣 138. 随机链表的复制

题目描述: 给你一个长度为 n 的链表,每个节点包含一个额外增加的随机指针 random ,该指针可以指向链表中的任何节点或空节点。 构造这个链表的 深拷贝。 深拷贝应该正好由 n 个 全新 节点组成,其中每个新节点的值都设为其对应的…

NOIP2023模拟12联测33 总结

NOIP2023模拟12联测33 总结 文章目录 NOIP2023模拟12联测33 总结比赛过程正解A. 构造题目大意思路 思路B.游戏题目大意思路 C. 数数题目大意 D. 滈葕题目大意思路 总结 比赛过程 先看了一眼 T 1 T1 T1 ,发现又是恶心构造题,果断跳过。 T 2 T2 T2 期望题…

Luckysheet 实现excel多人在线协同编辑

前言 前些天看到Luckysheet支持协同编辑Excel,正符合我们协同项目的一部分,故而想进一步完善协同文章,但是遇到了一下困难,特此做声明哈,若侵权,请联系我删除文章! 若侵犯版权、个人隐私&#x…

Flink的API分层、架构与组件原理、并行度、任务执行计划

Flink的API分层 Apache Flink的API分为四个层次,每个层次都提供不同的抽象和功能,以满足不同场景下的数据处理需求。下面是这四个层次的具体介绍: CEP API:Flink API 最底层的抽象为有状态实时流处理。其抽象实现是Process Functi…

MySQL -- 索引

MySQL – 索引 文章目录 MySQL -- 索引一、索引简介1.简介2.索引效率的案例 二、认识磁盘1.磁盘2.结论3.磁盘随机访问(Random Access)与连续访问(Sequential Access) 三、MySQL 与磁盘交互基本单位1.基本单位2.MySQL中的数据管理 五、索引的理解1.索引案例2.单页mysql page3.管…

“七人拼团模式:创新玩法助力平台快速裂变引流“

七人拼团模式是一种结合了社交电商和拼购玩法的快速裂变引流模式。这种模式通过抽取平台营业所得作为奖励补贴用户,以更人性化的奖励机制吸引用户,服务用户,以此加快用户向粉丝的转变,为平台拉取有效流量。本文将介绍七人拼团模式…

二十、泛型(2)

本章概要 泛型接口泛型方法 变长参数和泛型方法一个泛型的 Supplier简化元组的使用一个 Set 工具 泛型接口 泛型也可以应用于接口。例如 生成器,这是一种专门负责创建对象的类。实际上,这是 工厂方法 设计模式的一种应用。不过,当使用生成…

基础课23——设计客服机器人

根据调查数据显示,使用纯机器人完全替代客服的情况并不常见,人机结合模式的使用更为普遍。在这两种模式中,不满意用户的占比都非常低,不到1%。然而,在满意用户方面,人机结合模式的用户满意度明显高于其他模…

freertos简单串口

先来完善一下FreeRTOSConfig.h这个配置文件 /*FreeRTOS V9.0.0 - Copyright (C) 2016 Real Time Engineers Ltd.All rights reservedVISIT http://www.FreeRTOS.org TO ENSURE YOU ARE USING THE LATEST VERSION.This file is part of the FreeRTOS distribution.FreeRTOS is …

无代码平台哪家好,盘点最新国内十大无代码零代码平台排名

无代码(No Code)是一种通过使用可视化界面和预构建的模块来创建应用程序、网站或其他数字化解决方案的方法,不需要编写大量的手动代码。 无代码平台通常包括一些基本的构建块,如表单、按钮、文本框等,用户可以通过拖拽…

用小程序打造品牌网站的效果如何

网站是企业线上门户,很多企业或商家在成立之初就会选择搭建企业官网展示品牌、承载信息及服务相关预约咨询等,当然除了搭建网页外,还可以通过小程序实现官网效果。 除了浏览器流量外,如微信、百度、头条抖音、支付宝、快手等平台…