首页 > 数据库 >Linux——MySQL主从复制读写分离

Linux——MySQL主从复制读写分离

时间:2023-01-31 13:00:50浏览次数:47  
标签:主从复制 配置 配置文件 数据库 Linux 复制 mysql MySQL

  主从复制用来保证数据的一致性和完整性

  主从复制原理:主MySQL需要开启二进制日志保存用户对Mysql数据的操作。      从数据库监听主MySQL日志变化,发现更新复制日志到本地,读取复制到本地的日志,执行日志对数据库的操作,保证主和从数据库状态和数据的一致性,防止主数据库故障数据丢失

  Mysql支持三种数据复制类型分别是:基于语句复制,基于行复制,混合类型复制

基于语句复制:在主MySQL执行sql语句同步到从MySQL数据库上保证状态一致性,默认使用的是基于语句复制

基于行复制:将主MySQL数据库复制到从MySQL数据库上,当数据库表发生改变从mysql将改变的数据复制到本地

混合类型复制:语句和基于行综合应用,哪个复制数据速度快优先选择


  常见的读写分离分为两种:基于程序代码内部实现,基于中间代理层实现

基于程序代码内部实现:在代码中根据select、insert进行路由分类,这类方法也是目前生产环境应用最广泛。优点是性能较好,因为在程序代码中实现,不需要增加额外的设备作为硬件开支

基于中间代理层实现:代理一般位于客户端和服务器之间,代理服务器接到客户端的请求后通过判断后转发到后端数据库


实验案例:

一,配置安装MySQL配置一主两从安装三台mysql服务器

1,安装第一台MySQL依赖程序

1)挂载系统盘

Linux——MySQL主从复制读写分离_数据

2)删除系统自带yum源配置本地yum源

Linux——MySQL主从复制读写分离_数据库_02

Linux——MySQL主从复制读写分离_数据库_03

3)安装依赖程序

Linux——MySQL主从复制读写分离_MySQL_04

4)创建管理nginx服务用户

Linux——MySQL主从复制读写分离_数据_05

2,安装配置第一台MySQL

Linux——MySQL主从复制读写分离_数据_06

2)配置nginx

Linux——MySQL主从复制读写分离_数据_07

Linux——MySQL主从复制读写分离_MySQL_08

3) 配置安装nginx

Linux——MySQL主从复制读写分离_数据库_09

4)优化nginx命令

Linux——MySQL主从复制读写分离_数据_10

5)启动服务,查看服务运行状态

Linux——MySQL主从复制读写分离_MySQL_11

6)设置mysql登陆密码

Linux——MySQL主从复制读写分离_数据_12

二,配置和验证mysql数据库主从复制

1,配置NTP时间服务器

1)挂载系统盘

Linux——MySQL主从复制读写分离_数据_13

2)安装时间服务器

Linux——MySQL主从复制读写分离_数据库_14

3)修改时间服务器主配置文件

Linux——MySQL主从复制读写分离_数据_15

4)重启时间服务器设置开机自启

Linux——MySQL主从复制读写分离_MySQL_16

5)两台从MySQL数据库同步时间

Linux——MySQL主从复制读写分离_数据库_17

Linux——MySQL主从复制读写分离_数据库_18

2,配置第一台MySQL数据库主配置文件

1)修改主配置文件

Linux——MySQL主从复制读写分离_数据_19

Linux——MySQL主从复制读写分离_数据库_20

2)重启MySQL服务

Linux——MySQL主从复制读写分离_数据库_21

3,配置第二台MySQL数据库主配置文件

1)修改主配置文件

Linux——MySQL主从复制读写分离_MySQL_22

Linux——MySQL主从复制读写分离_数据_23

2)重启mysql服务

Linux——MySQL主从复制读写分离_数据_24

4,配置第三台MySQL数据库主配置文件

1)修改主配置文件

Linux——MySQL主从复制读写分离_MySQL_25

2)重启MySQL服务

Linux——MySQL主从复制读写分离_数据_26

5,配置主MySQL服务器创建数据复制账户查看状态

1)登录主mysql创建复制账户

Linux——MySQL主从复制读写分离_MySQL_27

2)查看mysql数据库主节点状态

Linux——MySQL主从复制读写分离_数据库_28

6,配置第一台从MySQL数据库服务器同步数据

1)登录mysql配置数据库复制

Linux——MySQL主从复制读写分离_数据_29

2)查看数据复制状态

Linux——MySQL主从复制读写分离_数据库_30

7,配置第二台从MySQL数据库服务器同步数据

1)登录mysql配置数据库复制

Linux——MySQL主从复制读写分离_MySQL_31

2)查看数据复制状态

Linux——MySQL主从复制读写分离_数据_32

8,主MySQL创建数据从复制进行验证

1)登录主MySQL创建数据库

Linux——MySQL主从复制读写分离_MySQL_33

2)登录第一台从MySQL查看数据

Linux——MySQL主从复制读写分离_数据_34

3)登录第二胎从MySQL数据库查看复制数据

Linux——MySQL主从复制读写分离_MySQL_35

三,配置和验证MySQL数据库的读写分离

1,配置hosts文件解析

1)修改主MySQL服务器节点hosts文件

Linux——MySQL主从复制读写分离_MySQL_36

Linux——MySQL主从复制读写分离_MySQL_37

2)将hosts文件复制到其他两台从mysql节点

Linux——MySQL主从复制读写分离_MySQL_38

2,配置amoeba代理程序安装依赖

1)挂载光盘

Linux——MySQL主从复制读写分离_数据库_39

2)安装jdk

Linux——MySQL主从复制读写分离_MySQL_40

Linux——MySQL主从复制读写分离_MySQL_41

Linux——MySQL主从复制读写分离_数据_42

Linux——MySQL主从复制读写分离_数据库_43

3)安装船舰amoeba安装目录,解压到安装目录安装

Linux——MySQL主从复制读写分离_数据库_44

4)配置环境变量

Linux——MySQL主从复制读写分离_数据_45

5)更新环境变量验证

Linux——MySQL主从复制读写分离_数据_46

3,配置读写分离

1)登录主MySQL数据库创建读写分开用户

Linux——MySQL主从复制读写分离_数据_47

2)修改amoeba配置文件

Linux——MySQL主从复制读写分离_MySQL_48

Linux——MySQL主从复制读写分离_数据_49

Linux——MySQL主从复制读写分离_数据库_50

Linux——MySQL主从复制读写分离_数据库_51

3)修改amoeba的配置文件

Linux——MySQL主从复制读写分离_数据_52

Linux——MySQL主从复制读写分离_数据库_53

Linux——MySQL主从复制读写分离_数据_54

Linux——MySQL主从复制读写分离_数据_55

Linux——MySQL主从复制读写分离_MySQL_56

Linux——MySQL主从复制读写分离_数据_57

4)启动amoeba服务后台运行

Linux——MySQL主从复制读写分离_MySQL_58

5)监听服务端口

Linux——MySQL主从复制读写分离_数据库_59

4,客户端安装msyql客户端程序

1)挂载系统盘

Linux——MySQL主从复制读写分离_MySQL_60

2)配置本地yum仓库

Linux——MySQL主从复制读写分离_MySQL_61

Linux——MySQL主从复制读写分离_MySQL_62

3)安装mysql’客户端

Linux——MySQL主从复制读写分离_MySQL_63

5,客户端验证读写分离

1)客户端登录amoeba创建数据库设置表结构插入数据

Linux——MySQL主从复制读写分离_数据_64

Linux——MySQL主从复制读写分离_MySQL_65

Linux——MySQL主从复制读写分离_数据库_66

Linux——MySQL主从复制读写分离_MySQL_67

Linux——MySQL主从复制读写分离_数据_68

2)停止两台从mysql的复制功能

Linux——MySQL主从复制读写分离_MySQL_69

Linux——MySQL主从复制读写分离_MySQL_70

3)客户端端插入新的数据,无法查询到新插入的迪迦二号数据说明在从mysql数据库查询实现读写分离

Linux——MySQL主从复制读写分离_数据库_71

Linux——MySQL主从复制读写分离_MySQL_72

4)启动从mysql数据库复制功能

Linux——MySQL主从复制读写分离_数据库_73

5)客户端查询到插入的迪迦三号验证完成主从复制和读写分离

Linux——MySQL主从复制读写分离_MySQL_74



“作者是学生目前正在努力学习阶段如有不对请指出,虚心接受指导,感谢!!!”

 


标签:主从复制,配置,配置文件,数据库,Linux,复制,mysql,MySQL
From: https://blog.51cto.com/u_15739582/6028357

相关文章

  • Linux如何通过Apache httpd部署MantisBT
    一、Apachehttpd1.安装Apachehttpdyuminstallhttpd-y#安装httpdsystemctlstarthttpd#启动httpdsystemctlenablehttpd#配置自启动2.修改Apache服......
  • docker-mysql cmd
    version:'3'services:db:#构建mysql镜像image:mysqlnetworks:network1:ipv4_address:172.16.238.10ip......
  • Linux下安装docker教程
    2023新一年啦,今年准备项目部署换成docker,所以现在开始上手在本地部署,本篇文章就是单纯的记录下docker的部署过程,希望能帮助下有需要的人 据了解,docker从17.03版......
  • mybatis和mysql依赖
    <dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.27</version></dependency><dependency><group......
  • lazarus在linux编写软件时需要注意的地方
    一、修改中文输入问题:1.尝试解决linux下Lazarus2.2.0版代码编辑器和SynEdit不支持中文输入的Bug2.修复lazarus在linux搜狗词组只能输入第一个字的Bug二、修正代码编辑器......
  • Linux常用命令-文本查看篇
    Linux常用命令中,除了cat还有很多其他用于文本查看的命令。本文将简单介绍一下这些文本查看的命令。全文本显示--catcat可能是常用的一个文本查看命令了,使用方法也很简单:c......
  • Linux设置防火墙,只允许特定IP访问指定端口
    一、概述1、目的服务器A使用端口1521,只有允许指定IP应用才可以访问,其它未经允许服务器ip地址无法正常访问。2、方法步骤启用防火墙。检查端口与关闭端口访问。......
  • Linux小知识----/bin/bash和/bin/sh的区别
    SH:sh就是Bourneshell这个是UNIX标准的默认shell,对它评价是concise简洁compact紧凑fast高效,由AT&T编写,属于系统管理shellBASH:bash是GNUBourne-AgainSHell(GNU命令......
  • linux查看服务器开放的端口和启用的端口的几种方式
     文章目录nmap工具检测开放端口Nmap的扫描参数telnet查看端口是否开放curl查看链接端口是否开放nc(netcat)命令来查看远程Linux系统中某个端口是否开启n......
  • MySql 自动设置时间(自动获取时间,填充时间)
    应用场景:1、在数据表中,要记录每条数据是什么时候创建的,不需要应用程序去特意记录,而由数据数据库获取当前时间自动记录创建时间;2、在数据库中,要记录每条数据是什么时候修......