mysql主从复制最简单环境搭建(一主一从)

news2024/10/6 18:27:59

提示:前面有相应的文章利用不同方式进行的主从配置

文章目录

  • 前言
    • 一、概述
    • 二、主从复制的优点
    • 三、原理
    • 四、搭建
    • 五、主库配置
    • 六、从库配置
    • 七、测试


前言

一、概述

主从复制是指将主数据库的DDL 和 DML 操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步。
MySQL支持一台主库同时向多台从库进行复制, 从库同时也可以作为其他从服务器的主库,实现链状复制。

二、主从复制的优点

MySQL 复制优点主要包含以下三个方面:
1、主库出现问题,可以快速切换到从库提供服务。
2、实现读写分离,降低主库的访问压力。
3、可以在从库中执行备份,以避免备份期间影响主库服务。

在这里插入图片描述

三、原理

在这里插入图片描述

复制分成三步:

1、Master 主库在事务提交时,会把数据变更记录在二进制日志文件 binlog 中
2、从库读取主库的二进制日志文件 binlog ,写入到从库的中继日志 relay log
3、slave重做中继日志中的事件,将改变反映它自己的数据。

四、搭建

准备两台服务器
在这里插入图片描述
服务器上完成mysql的安装并且关闭防火墙数据库能正常登录。

关闭防火墙命令
systemctl stop firewalld
systemctl disable firwalld

五、主库配置

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

mysql服务器ID,保证整个集群环境唯一,取值范围:1-232-1,默认1
server-id = 1 # 保证服务器的唯一性
#是否只读,1只读,0读写
read-only = 0
#忽略的数据,指不需要同步的数据库
#binlog_ignore-db=mysqlID
#指定同步的数据库,默认都同步
#binlog-do-db=mysqlID

说明:根据实际的应用配置同步的库和不要同步的库,这里没有进行限制

2、重启mysql服务

service mysqld restart

3、登录mysql,创建远程连接的账号,并授予主从复制权限

创建itcast用户,并设置密码,该用户可在任意主机连接该mysql服务
create user ‘itcast’@‘%’ identified with mysql_native_password by ‘Root@123456’;

为itcast用户分配主从复制的权限
grant replication slave on . to ‘itcast’@‘%’


4、查看主库配置的状态
命令:
show master status;(show master status\G;)

在这里插入图片描述

字段含义说明:

file : 从哪个日志文件开始推送日志文件
position : 从哪个位置开始推送日志
binlog_ignore_db : 指定不需要同步的数据库
忽略的数据,
binlog_ignore-db:指不需要同步的数据库

binlog-do-db:指定同步的数据库,默认都同步


六、从库配置

1、修改配置文件 vim/etc/my.cnf
#mysql服务器ID,保证整个集群环境唯一,取值范围:1-2的32-1,和主库不一样即可
server-id = 2
#是否只读,1只读,0读写
read-only = 0

2、mysql重启
service mysql restart

3、登录mysql数据库配置主库信息:

change master to master_host='ip地址' ,master_user ='用户名' ,master_password ='密码' , master_log_file = '文件名' , master_log_pos =xxx;

change master to master_host =‘192.168.200.200’ ,master_user =‘itcast’ ,master_password =‘Root@123456’ , master_log_file = ‘binlog.000004’ , master_log_pos =663;
或者
change master to
master_host=‘192.168.100.57’,
master_port=3306,
master_user=‘repl’,
master_password=‘123456’,
master_log_file=‘mysql-bin-3306.000122’,
master_log_pos=604;

说明:主库的状态信息根据命令show master status在主库中获取到,从库中配置以上两种方式都可以,任选其一即可,

参数说明:

SOURCE_HOST 主库IP地址 MASTER_HOST
SOURCE_USER 连接主库的用户名 MASTER_USER
SOURCE_PASSWORD 连接主库的密码 MASTER_PASSWORD
SOURCE_LOG_ FILE binlog日志文件名 MASTER_LOG_FILE
SOURCE_LOG_POS binlog日志文件位置 MASTER_LOG_POS

4、开启同步
show slave status(从库上运行)
在这里插入图片描述
以上两个参数同时为’yes‘的状态下表示主从复制搭建成功


七、测试

1、在主库上创建数据库、表,并插入数据
create database itcast;

use testdb;

create table tb_user(
id int(11) not null,
name varchar(50) not null,
sex varchar(1),
primary key (id)
)engine=innodb default charset=utf8;

insert into tb_user(id,name,sex) values(1,‘Tom’,‘1’);
insert into tb_user(id,name,sex) values(2,‘Trigger’,‘0’);
insert into tb_user(id,name,sex) values(3,‘Dawn’,‘1’);

2、从库中读取主库的写入即可

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

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

相关文章

Mac 使用 rar 命令行工具解压和压缩文件

在 Mac 中常遇到的压缩文件有 zip 和 rar 格式的,如果是 zip 格式的 Mac 系统默认双击一下文件就能直接解压了,但 rar 文件就不行。 需要额外下载 rar 工具了实现。 第一步:下载 rar 工具 工具网址:https://www.rarlab.com/dow…

【C++】stack/queue/优先级队列的模拟实现

目录 1. stack/queue1.1 模拟实现 2. 优先级队列2.1 模拟实现2.2 仿函数 1. stack/queue stack文档说明 queue文档说明 stack和queue被称为容器适配器。 容器适配器是什么? 它是一种特殊的容器类型,通过封装已有的容器类型来提供特定功能的接口函数&a…

探索1688 API的无限商机与应用

为了更好地满足用户需求,1688.com开放了丰富强大的API接口,使得开发者可以便捷地与平台进行集成,实现自动化的商务操作。 产品查询与筛选:通过调用1688 API,你可以根据自定义条件进行商品查询和筛选,获取符…

JAVA三种拦截方式

最近面试有遇到拦截方式的场景,结合网上xdm的代码整理了下,分为以下三种: java原生过滤器Filter、springMVC拦截器、aop切面 目录: 一、java原生过滤器Filter二、springMVC拦截器三、aop切面 一、java原生过滤器Filter package c…

C++初阶语法——new,delete开辟/销毁动态内存空间

前言:在C语言中,有malloc,realloc,calloc开辟动态内存空间,free销毁动态内存空间。而在C中,使用new开辟动态内存空间,delete销毁动态内存空间。不仅简化了操作,更为重要的是&#xf…

springcloud3 hystrix实现服务监控显示3(了解)

一 hystrix的服务监控调用 1.1 hystrix的服务监控调用 hystrix提供了准实时的监控调用(hystrix dashbord),Hystrix 会持续的记录所有通过hystrix发送的请求的执行信息,并以统计报表和图形的形式展示给用户,包括每秒执…

在海外如何进行应用商店的关键词优化

分析市场,了解我们的应用类别,将我们的应用与竞争对手的优点和缺点进行比较,找到市场上的空白或所谓未满足的需求,并思考如何填补。 1、应用商店关键词优化。 关键词优化的目的是找到最相关的关键词 ,并测试应用元数据…

菜鸟Vue教程 - 实现带国际化的注册登陆页面

初接触vue的时候觉得vue好难,因为项目中要用到,就硬着头皮上,慢慢的发现也不难,无外乎画个布局,然后通过样式调整界面。在通过属性和方法跟js交互。js就和我们写的java代码差不多了,复杂一点的就是引用这种…

PHP8的正则表达式-PHP8知识详解

在网页程序的时候,经常会有查找符合某些复杂规则的字符串的需求。正则表达式就是描述这些规则的工具。 正则表达式是把文本或者字符串按照一定的规范或模型表示的方法,经常用于文本的匹配操作。 例如:我们在填写手机号码的时候,…

LinkedBlockingQueue详解,深入探究LinkedBlockingQueue源码

目录 1、LinkedBlokingQueue是一个有界队列 2、LinkedBlokingQueue是一个单向队列 3、LinkedBlokingQueue中的非阻塞方法 4、LinkedBlokingQueue中的阻塞方法 LinkedBlockingQueue是通过ReentrantLock实现的(有界/无界)阻塞队列,在线程池…

PHP8的字符串操作3-PHP8知识详解

今天继续分享字符串的操作,前面说到了字符串的去除空格和特殊字符,获取字符串的长度,截取字符串、检索字符串。 今天继续分享字符串的其他操作。如:替换字符串、分割和合成字符串。 5、替换字符串 替换字符串就是对指定字符串中…

SUMO traci接口控制电动车前往充电站充电

首先需要创建带有停车位的充电站(停车场和充电站二合一),具体参考我的专栏中其他文章。如果在仿真的某个时刻,希望能够控制电动车前往指定的充电站充电,并且在完成充电后继续前往车辆原来的目的地,那么可以使用以下API&#xff1a…

STM32 F103C8T6学习笔记8:0.96寸单色OLED显示屏显示字符

使用STM32F103 C8T6 驱动0.96寸单色OLED显示屏: OLED显示屏的驱动,在设计开发中OLED显示屏十分常见,因此今日学习一下。一篇文章从程序到显示都讲通。 文章提供源码、原理解释、测试工程下载,测试效果图展示。 目录 OLED驱动原理—IIC通信…

【论文解读】Hybrid-SORT: Weak Cues Matter for Online Multi-Object Tracking

因为Hybrid-SORT的baseline是基于OCSORT进行改进的,在这之前建议先了解byteTrack和【】的相关知识 1.介绍 1.1 基本框架 多目标跟踪(MOT)将问题分为两个子任务。第一个任务是检测每个帧中的对象。第二个任务是将它们在不同的框架中联系起来。关联任务主要通过显式…

搜狗拼音暂用了VSCode及微信小程序开发者工具快捷键Ctrl + Shit + K 搜狗拼音截图快捷键

修改搜狗拼音的快捷键 右键--更多设置--属性设置--按键--系统功能快捷键--系统功能快捷键设置--取消Ctrl Shit K的勾选--勾选截屏并设置为Ctrl Shit A 微信开发者工具设置快捷键 右键--Command Palette--删除行 微信开发者工具快捷键 删除行:Ctrl Shit K 或…

n5173b是德科技keysight N5173B信号发生器

产品概述 是德科技/安捷伦N5173B EXG模拟信号发生器 当您需要平衡预算和性能时,是德科技N5173B EXG微波模拟信号发生器是经济高效的选择。它提供解决宽带滤波器、放大器、接收机等参数测试的基本信号。执行基本LO上变频或CW阻塞,低成本覆盖13、20、31.…

FPGA应用学习笔记----I2S和总结

时序一致在慢时序方便得多 增加了时序分布和分析的复杂性 使用fifo会开销大量资源

SqlServer的with(nolock)关键字的用法介绍

举个例子 下面就来演示这个情况。 为了演示两个事务死锁的情况,我们下面的测试都需要在SQL Server Management Studio中打开两个查询窗口。保证事务不被干扰。 --1、 没有提交的事务,NOLOCK 和 READPAST处理的策略: --查询窗口一请执行如下…

python中可以处理word文档的模块:docx模块

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 话不多说,直接开搞,如果有什么疑惑/资料需要的可以点击文章末尾名片领取源码 一.docx模块 Python可以利用python-docx模块处理word文档,处理方式是面向对象的。 也就是说python-docx模块…

设备文件和设备绑定

实验目的&#xff1a;使用函数让设备文件和设备绑定&#xff0c;完成对LED的简单控制 在test.c中完成硬件逻辑控制 test.c #include <stdio.h> #include <unistd.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #inclu…