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

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

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数据表即可验证主从数据库是否正常运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值