首页 > 数据库 >构建读写分离的数据库集群

构建读写分离的数据库集群

时间:2024-09-27 16:21:25浏览次数:10  
标签:读写 节点 虚拟机 集群 db1 mariadb 数据库

三、构建读写分离的数据库集群

1、案例目标

(1)了解Mycat提供的读写分离功能。

(2)了解MySQL数据库的主从架构。

(3)构建以Mycat为中间件的读写分离数据库集群。

2、案例分析

读写分离的基本原理:让主数据库处理事务性增、改、删除操作,而从库处理查询操作

2.1准备三台虚拟机设置如下:

IP

主机名

节点

192.168.104.111

mycat

Mycat中间件服务节点

192.168.104.105

db1

MariaDB数据库集群主节点

192.168.104.106

db2

MariaDB数据库集群从节点

2.2基础准备:

使用CentOS 7.2系统,flavor使用2vCPU/4G内存/50G硬盘,创建3台虚拟机进行实验。

其中2台虚拟机db1和db2部署MariaDB数据库服务,搭建主从数据库集群;一台作为主节点,负责写入数据库信息;另一台作为从节点,负责读取数据库信息。

使用一台虚拟机部署Mycat数据库中间件服务,将用户提交的读写操作识别分发给相应的数据库节点。这样将用户的访问操作、数据库的读与写操作分给3台主机,只有数据库集群的主节点接收增、删、改SQL语句,从节点接收查询语句,分担了主节点的查询压力。

Yum源使用提供的gpmall-repo文件夹作为本地源,Mycat组件使用提供的Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz压缩包安装。

3、基础环境配置

3.1修改主机名

使用hostnamectl命令修改主机名

Mycat节点:

Db1节点:

Db2节点:

3.2编辑/etc/host文件配置

三台集群虚拟机的/etc/hosts文件配置如下:

3.3配置yum安装源

将提供的gpmall-repo文件上传至三个虚拟机的/opt/目录下:

3.4安装jdk环境

3.5查看版本:

4、部署mariadb主从数据库集群服务

4.1安装mariadb服务(yum安装,db1与db2都需安装)

4.2两个节点启动mariadb,并设置开机自启动

# systemctl start mariadb

# systemctl enable mariadb

4.3初始化数据库

在两台虚拟机上初始化mariadb数据库,并设置访问密码

[root@db1 ~]# mysql_secure_installation

/usr/bin/mysql_secure_installation: line 379: find_mysql_client: command not found

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB

4.4配置数据库集群主节点db1

编辑主节点,修改其配置文件/etc/my.cnf,在配置文件增加如下内容

4.5编辑完成后重启数据库

4.6开放主节点数据库权限

登录mariadb数据库,授权给任何客户端机器都可以root用户登录到数据库

翻译:privileges 特权

在主节点db1数据库创建一个user用户从db2连接,并赋予从节点与主节点数据库同样的权限

4.7配置从节点db2同步db1

进入mariadb数据库并连接主节点

4.8连接主节点后,开启从节点服务,并查看连接状态

当看到这两列的显示结果全部为yes时,证明连接成功 

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

4.9错误案例

(1)注:查看从节点状态时how slave status\G;出现如下错误:

证明是数据库配置文件/etc/my.cnf中的server_id  出现错误,db1的与db2不可相同

注:若出现如下报错:

(2)证明是主数据库在创建用户并授权时出现错误,重复在主数据库下写入:

MariaDB [(none)]> grant replication slave on *.* to 'user'@'db2' identified by '123456';

在主数据库写入后,在从数据库下一定要停止从数据库,连接,再开启从数据库

直至从数据库的状态连接正确

4.10验证主从数据库的同步功能

在主节点db1的数据库中创建数据库test,在test库里新建company表,插入表数据,创建完成后,查看company数据

这时就可体现出主从数据库的作用,验证主从数据库的同步性,在从节点查询test数据库和company数据表即可验证主从数据库是否正常运行

标签:读写,节点,虚拟机,集群,db1,mariadb,数据库
From: https://blog.csdn.net/2301_82330629/article/details/142596512

相关文章

  • QT读写配置ini文件
    一、概述Qt中常见的配置文件为(.ini)文件,其中ini是InitializationFile的缩写,即初始化文件。配置文件的格式如下所示:模板:点击查看代码[节名]key1=value1key2=value2示例:[SysParam]hostIP=192.168.1.100hostPort=5200Qt中使用QSettings类来完成读写ini文件的操作。......
  • Springboot宠物乐园rp9dc(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,商家,宠物分类,宠物信息,宠物商品,宠物疫苗,疫苗预约,疫苗提醒,萌宠托管,宠物寄养,资讯分类,宠物资讯,商品分类,到期提醒,个人宠物开题报告内容一、研究背......
  • Springboot宠物寄养酒店系统63ul4(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,宠物寄养,商品分类,商品信息开题报告内容一、选题意义1.理论意义随着人们对宠物关注度的增加和养宠需求的增长,宠物寄养酒店成为了一个重要的服务行业。......
  • Springboot宠物户籍管理z7vi8(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表饲养人员,宠物信息,走失宠物,宠物资讯,通知公告开题报告内容一、研究背景随着人们生活水平的提高,宠物已成为现代家庭中不可或缺的一部分。然而,宠物管理尤其是宠......
  • Springboot宠物管理系统nt169(程序+源码+数据库+调试部署+开发环境)
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表用户,寄养者,宠物分类,养宠经验,宠物寄养,宠物领养,走失宠物,网站公告开题报告内容一、引言随着现代生活节奏的加快和人们情感需求的日益增长,宠物已成为许多家......
  • vue3 vxe-grid 通过数据库返回的列信息,生成columns,并且其中有一列是img类型,进行slots
    1、一般我们写死的列信息的时候,会这样定义:2、然后我们在template里面,这样这样写slots格式化部分:这样表格中就会展示出一张图片,并且,我们点击了可以查看大图。3、那么我们从数据库中返回的列,应该如何去写:letfields={field:item.fieldname,......
  • redis集群增加减少节点
    redis集群故障切换方案步骤:1、增加临时节点并加入集群2、将故障节点槽位移动到新节点3、剔除故障节点4、备份故障节点配置下架更换5、更换后按照1-3步骤将临时节点剔除,将原故障节点重新加入集群#测试环境为3主3从,有5个keyredis-cli-c-p8102-h172.17.0.89-a123456d......
  • JDBC连接GaussDB云数据库操作示例
    ​目录一、实验环境二、登录华为云创建测试库表1、登录GaussDB云数据库2、建库、建表,用于测试3、新增普通角色(用户)用于登录及访问测试(可选)4、获取对应的公网IP三、创建java工程1、创建java工程2、添加jar包3、编辑Java代码四、执行并查看测试结果一、实验环境1、本......
  • GaussDB云数据库SQL应用系列-定时任务管理
    ​前言GaussDB数据库定时任务主要可以用于实现定期的备份、统计信息采集、数据汇总、数据清理与优化等,它是指在指定的时间间隔内自动执行一次或多次SQL语句的程序。一、GaussDB数据库定时任务介绍GaussDB数据库兼容Oracle定时任务功能主要通过DBE_TASK高级功能包提供的二次封......
  • GaussDB云数据库SQL应用系列-基础使用
    ​目录一、前言二、前提条件1、连接数据库实例2、GaussDB实例正常运行三、操作示例1、选择实例并进入SQL执行界面2、创建数据库用户3、创建数据库4、创建SCHEMA5、创建表(增删改查)1)创建3张表,并初始化一些数据2)假设查询场景,并通过SQL实现一、前言随着云计算技术的不......