三、构建读写分离的数据库集群
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