数据库进阶教学——主从复制(Ubuntu22.04主+Win10从)

news2024/10/5 17:04:19

目录

一、概述

二、原理

三、搭建

1、备份数据

2、主库配置Ubuntu22.04

2.1、设置阿里云服务器安全组

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

2.3、重启MySQL服务

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

2.5、通过指令,查看二进制日志坐标

3、从库配置Win10

3.1、修改配置文件my.ini

3.2、重启mysql服务器

3.3、登录mysql,设置主库配置

3.4、开启同步操作

3.5、查看主从同步状态

4、测试

4.1、在主库上创建数据库、表,并插入数据 

4.2、查看从库的变化


一、概述

  • 主从复制是指将主数据库的 DDL 和 DML 操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(重做),从而使得从库和主库的数据保持同步。
  • MySQL支持一台主库 (Master)同时向多台从库 (Slave)进行复制,从库同时也可以作为其他从服务器的主库,实现链状复制。
  • 主从复制的优势:
    • 主库出现问题,可以快速切换到从库提供服务。
    • 实现读写分离,降低主库的访问压力。(增删改操作主库,查询请求操作从库)
    • 可以在从库中执行备份,以避免备份期间影响主库服务。

二、原理

  • 数据库主要使用二进制日志实现主从复制。
  • Master主库在事务提交时,会把数据变更记录在二进制日志文件Binlog中。
  • 从库读取主库的二进制日志文件,写入到从库的中继日志Relay log中。
  • slave从库重做中继日志中的事件,改变它自己的数据。

三、搭建

  • 主机:阿里云服务器 Ubuntu22.04
    • 申请阿里云服务器,使用Xshell连接(SSH协议22号端口)。
  • 从机:本地电脑 Win10
    • 【注】我这的本地电脑没有公网,所以只能作为从机。
  • 数据库:Mysql8.0.34
    • 【注】主机和从机的数据库版本要一致。

1、备份数据

  • 因为我本地已经安装了mysql,并且有一些数据,而阿里云服务器上的mysql是新安装的。所以首先需要让本地主机和阿里云服务器上的mysql数据保持一致。 
  • 【注】如果主从服务器的mysql都是新安装的,这个一步就不需要。因为新安装的master和slave有相同的数据。
  • 在本地主机上,使用mysqldump将数据库所有信息导出到all.sql中。
    • mysqldump -u root -p --all-databases > D:\Desktop\all.sql
  • 登陆阿里云服务器的数据库导入all.sql数据。
    • 首先要把本地导出的.sql文件上传到服务器。具体看:服务器——Windows将本地文件上传到Linux服务器-CSDN博客
    • source /home/all.sql
    • 此时,主库和从库的数据就保持一致了。

2、主库配置Ubuntu22.04

2.1、设置阿里云服务器安全组
  • 首先需要设置阿里云服务器上的访问规则,这样本地主机才能连接上阿里云服务器的数据库。
  • 开放服务器的3306端口。
2.2、修改配置文件 /etc/my.cnf
  • 修改内容:
    • mysql服务ID,保证整个集群环境中唯一,取值范围:1\sim 2^{32}-1,默认为1。
      • server-id=1
2.3、重启MySQL服务
  • sudo service mysql restart
2.4、登录mysql,创建远程连接的账号,并授予主从复制权限
  • 创建master用户,并设置密码,该用户可在任意主机连接该MySOL服务,并分配主从复制权限。
    • CREATE USER 'master'@'%' IDENTIFIED WITH mysql_native_password BY '123456';  # 创建用户
      GRANT REPLICATION SLAVE ON *.* TO 'master'@'%';  # 分配主从复制权限
      flush privileges;  # 刷新权限
  • 查看用户是否创建成功。
    • select user,host from mysql.user;
  • 删除用户命令。
    • drop user 'master'@'%';
2.5、通过指令,查看二进制日志坐标
  • show master status;
  • 字段含义说明:
    • file:从哪个日志文件开始推送日志文件。
    • position:从哪个位置开始推送日志。
    • binlog_ignore_db:指定不需要同步的数据库。

3、从库配置Win10

3.1、修改配置文件my.ini
  • my.ini位置: 
  • 修改内容:
    • mysql服务ID,保证整个集群环境中唯一,取值范围:1\sim 2^{32}-1,和主库不一样即可。
      • server-id=2
  • 【注】原先文件中可能已经设置了server-id,找到修改即可。
3.2、重启mysql服务器
  • Win+R,输入services.msc,找到MySQL重启即可。
3.3、登录mysql,设置主库配置
  • CHANGE REPLICATION SOURCE TO SOURCE_HOST='123.56.xxx.xxx', SOURCE_USER='master', SOURCE_PASSWORD='123456', SOURCE_LOG_FILE='binlog.000006', SOURCE_LOG_POS=1033;
    #  SOURCE_HOST             主机IP地址
    #  SOURCE_USER             连接主库的用户名
    #  SOURCE_PASSWORD         连接主库的密码
    #  SOURCE_LOG_FILE         binlog日志文件名
    #  SOURCE_LOG_POS          binlog日志文件位置
3.4、开启同步操作
  • start replica;
3.5、查看主从同步状态
  • show replica status\G;
  • 主要看下面两个值,必须为yes。

4、测试

4.1、在主库上创建数据库、表,并插入数据 
  • create database db01;
    use db01;
    create table tb_user(
        id int(11) primary key not null auto_increment,
        name varchar(50) not null,
        sex varchar(1)
    )engine=innodb default charset=utf8mb4;
    insert into tb_user(id,name,sex) values(null,'Tom', '1'),(null,'Trigger','0'),(null,'Dawn','1');
  •  执行为上述命令后,查看主库的数据。
4.2、查看从库的变化
  • 从库的数据完全与主库保持一致。

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

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

相关文章

Python Web框架FastAPI——一个比Flask和Tornada更高性能的API框架

目录 一、FastAPI框架概述 二、FastAPI与Flask和Tornado的性能对比 1、路由性能 2、请求处理性能 3、内存占用 三、FastAPI的优点与特色 四、代码示例 五、注意事项 六、结论 在当今的软件开发领域,快速、高效地构建API成为了许多项目的关键需求。为了满足…

k8s快速搭建

VMware16Pro虚拟机安装教程VMware16.1.2安装及各版本密钥CentOS7.4的安装包:提取码:lp6qVMware搭建Centos7虚拟机教程 搭建完一个镜像 关机 拍摄一个快照,克隆两个作为子节点 0. 环境准备 在开始之前,部署Kubernetes集群机器需要满足以下几个条件&#…

实验笔记之——基于Linux服务器复现Instant-NGP及常用的tmux指令

之前博客实现了基于windows来复现Instant-NGP,本博文在linux服务器上测试 实验笔记之——基于windows复现Instant-NGP-CSDN博客文章浏览阅读444次,点赞15次,收藏7次。之前博客对NeRF-SLAM进行了调研,本博文先复现一下Intant-NGP。…

【Matlab】PSO-BP 基于粒子群算法优化BP神经网络的数据时序预测(附代码)

资源下载: https://download.csdn.net/download/vvoennvv/88689096 一,概述 PSO-BP算法是一种结合了粒子群算法(PSO)和BP神经网络的方法,用于数据时序预测。下面是PSO-BP算法的原理和过程: 1. 数据准备&…

elasticsearch如何操作索引库里面的文档

上节介绍了索引库的CRUD,接下来操作索引库里面的文档 目录 一、添加文档 二、查询文档 三、删除文档 四、修改文档 一、添加文档 新增文档的DSL语法如下 POST /索引库名/_doc/文档id(不加id,es会自动生成) { "字段1":"值1", "字段2&q…

印象笔记02: 笔记本管理系统和空间使用

印象笔记02: 笔记本管理系统和空间使用 印象笔记新建笔记是一件非常容易的事情。笔记多了,就是归纳到笔记本里。 印象笔记一共有三层的笔记结构:最高层级是笔记本组,其次是笔记本,最后是一个个的笔记。合理的分类能够…

HbuilderX中的git的使用

原文链接https://blog.csdn.net/Aom_yt/article/details/119924356

PS 2024全新开挂神器Portraiture v4.1.2升级版,功能强大,一键安装永久使用

关于PS修图插件,相信大家都有安装过使用过,而且还不止安装了一款,比如最为经典的DR5.0人像精修插件,Retouch4me11合1插件,Portraiture磨皮插件,这些都是人像精修插件中的领跑者。 其中 Portraiture 刚刚升…

魔棒无人直播系统有哪些优势?

随着科技的发展,越来越多新鲜事物的出现,它们代替了我们做很多的事情,开始解放着自己的双手,其中,无人直播的出现,就让直播变得更加简单。 因为是无人直播,所以全程不需要真人出镜,…

探索Java的魅力

从本篇文章开始,小编准备写一个关于java基础学习的系列文章,文章涉及到java语言中的基础组件、实现原理、使用场景、代码案例。看完下面一系列文章,希望能加深你对java的理解。 本篇文章作为本系列的第一篇文章,主要介绍一些java…

【Mybatis】Mybatis如何防止sql注入

🍎个人博客:个人主页 🏆个人专栏: Mybatis ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 1、使用参数化的 SQL 语句: 2、使用动态 SQL 标签: 3、禁止拼接 SQL: 4、限制参数类…

dmetl5授权查看与更新

1.查看dmetl5授权到期时间 需要登录管理端&#xff0c;菜单栏选择“管理”-“license管理”即可查看授权到期时间。如下图&#xff1a; 2.dmetl5更新授权的方法 dmetl5的<安装目录>\scheduler\config路径下&#xff0c;默认会有一个trail.key的文件&#xff0c;删除后&am…

Ribbon相关面试及答案(2024)

1、Ribbon是什么&#xff0c;它在微服务架构中扮演什么角色&#xff1f; Ribbon是一个客户端负载均衡器&#xff0c;它在微服务架构中扮演着关键性的角色。Ribbon的设计理念是在客户端进行服务发现和负载均衡&#xff0c;这种方式不同于传统的通过中心化的负载均衡器&#xff…

案例216:基于微信小程序的垃圾分类系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder …

【macOS】将macOS安装到U盘,让它在U盘/SSD启动运行

将macOS安装到U盘&#xff0c;让它在U盘/SSD启动运行。 1.从AppStore下载macOS&#xff1b; 2.双击下载的安装包文件&#xff1a; 例如&#xff1a;我下载的是&#xff1a;macOS 14.x 文件名&#xff1a;安装macOS Sonoma 文件位置&#xff1a;/Application/ 【注意】&…

广州求职招聘(找工作)去哪里找比较好

在广州找工作&#xff0c;可以选择“吉鹿力招聘网”这个平台。它是一个号称直接和boss聊的互联网招聘神器&#xff0c;同时&#xff0c;“吉鹿力招聘网”作岗位比较齐全&#xff0c;企业用户也多&#xff0c;比较全面。在“吉鹿力招聘网”历即可投递岗位。 广州找工作上 吉鹿力…

mysql之四大引擎、账号管理以及建库

一.数据库存储引擎 1.1存储引擎的查看 1.2InnoDB 1.3MyISAM 1.4 MEMORY 1.5 Archive 二.数据库管理 2.1元数据库简介 2.2元数据库分类 2.3 相关操作 2.4 MySQL库 三.数据表管理 3.1三大范式 3.2 基本数据类型 3.2.1优化原则 3.3 整形 3.4 实数 3.5 字符串 3.6 text&…

13.Go 异常

1、宕机 Go语言的类型系统会在编译时捕获很多错误&#xff0c;但有些错误只能在运行时检查&#xff0c;如数组访问越界、空指针引用等&#xff0c;这些运行时错误会引起宕机。 一般而言&#xff0c;当宕机发生时&#xff0c;程序会中断运行&#xff0c;并立即执行在该gorouti…

vue和react哪种框架使用范围更广

Vue和React都是非常流行的前端JavaScript框架&#xff0c;它们各自有着广泛的应用场景和支持者。选择使用哪一个框架往往取决于特定的项目需求、开发团队的熟悉程度以及生态系统的偏好。以下是这两个框架的一些主要特点&#xff0c;以帮助比较它们的使用范围&#xff1a; React…

基于Springboot的服务端开发脚手架-自动生成工具

继之前的 专题系列课程&#xff1a; ​​从零开始搭建grpc分布式应用​​完整DEMO&#xff1a;​​基于Springboot的Rpc服务端开发脚手架(base-grpc-framework)​​ 后带来一款项目自动手成工具&#xff08;由于包路径等原因&#xff0c;完整demo想应用在实际开发中需要改很多代…