构建读写分离的数据库集群
准备三台虚拟机:mycat(Mycat中间件服务节点)、db1(mariadb数据库集群主节点)、db2(mariadb集群从节点)
基础环境配置
#vi /etc/hosts
添加以下配置
172.16.51.6 mycat
172.16.51.18 db1
172.16.51.30 db2
三台虚拟机分别上传gpmall-repo文件至/opt/下,并设置本地yum源
#mv /etc/yum.repo.d/* /media
#mkdir /opt/centos
#mount /dev/cdrom /opt/cenos
#vi /etc/yum.repo.d/local.repo
[centos]
name=centos
baseurl=file:///opt/centos
gpgcheck=0
enabled=1
[mariadb]
name=mariadb
baseurl=file:///opt/gpmall-repo
gpgcheck=0
enabled=1
安装jdk环境
#yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel
#java -version
关闭防火墙(三个节点)
#iptables -F
#iptables -X
#iptables -Z
部署mariadb主从数据库集群服务
在db1、db2节点安装mariadb服务、启动服务、设置开机自启
#yum install -y mariadb mariadb-server
#systemctl start mariadb
#systemctl enable mariadb
在db1、db2节点初始化mariadb数据库,设置用户root密码为123456
#mysql_secure_installstion
(回车、y、123456、123456、y、n、y、y)
在db1节点my.cnf配置文件开头中增添以下内容
#vi /etc/my.cnf
[mysqld]
log_bin = mysql-bin
binlog_ignore_db = mysql
server_id = 18
#systemctl restart mariadb (重启mariadb服务)
开放主节点数据库权限
在db1节点登录数据库
#mysql -uroot -p123456
>grant all privilcation slave on *.* to root@’%’ identified by “123456”;
在db1主节点数据库创建user用户使其可以在db2从节点连接,并赋予从节点同步数据库的权限
>grant replication slave on *.* to ‘user’@’db2’ identified by ‘123456’;
配置从节点db2同步主节点db1
在db2从节点登录myariadb数据库,配置从节点连接主节点的连接信息。Master_host为主节点db1,master_user为上面创建的用户user
#mysql -uroot -p123456
>change master to master_host=’db1’,master_user=’user’,master_password=’123456’;
>start slave;
>show slave status\G;
//Slave_IO_Running和Slave_SQL_Running的状态都为YES
验证主从数据库的同步功能
在db1数据库中创建库test,并在库test中创建表company,插入表数据。
>create database test;
>use test;
>create table company(id int not null primary key,name varchar(50),addr varchar(255));
>insert into company values(1,”facebook”,”usa”);
>select * from company;
部署Mycat读写分离中间件服务
将Mycat服务的软件包上传到/root目录下,并将软件包及液压到/use/local目录中
# tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local/
#chown -R 777 /usr/local/mycat/ (赋予mycat目录权限)
在/etc/profile系统变量文件中添加mycat服务的系统变量,并生效变量
#echo export MYCAT_HOME=/usr/local/mycat/ >> /etc/profile
#source /etc/profile
编辑mycat的逻辑库配置文件
#vi /usr/local/mycat/conf/schema.xml
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="USERDB" checkSQLschema="true" sqlMaxLimit="100" dataNode="dn1"></schema>
<dataNode name="dn1" dataHost="localhost1" database="test" />
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="3" dbType="mysql" dbDriver="native" writeType="0" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM1" url="172.16.51.18:3306" user="root" password="123456">
<readHost host="hostS1" url="172.16.51.30:3306" user="root" password="123456" />
</writeHost>
</dataHost>
</mycat:schema>
修改schema.xml的用户权限
#chown root:root /usr/local/mycat/conf/schema.xml
编辑mycat的访问用户
修改/usr/local/mycat/conf/目录下的server.xml文件,修改root用户的访问密码与数据库,密码设置为123456,访问Mycat的逻辑库为USERDB
#vi /usr/local/mycat/conf/server.xml
在文件最后部分
<user name="root">
<property name="password">123456</property>
<property name="schemas">USERDB</property>
删除以下几行
<user name="user">
<property name="password">user</property>
<property name="schemas">TESTDB</property>
<property name="readOnly">true</property>
</user>
启动mycat服务
# /bin/bash /usr/local/mycat/bin/mycat start
#netstat -ntpl
//若有8066和9066端口,则表示mycat服务开启成功
验证数据库集群服务读写分离功能
用mycat服务查询数据库信息
首先在mycat虚拟机上使用yum安装mariadb服务
#yum install -y MairaDB-client\
在Mycat虚拟机上使用mysql命令查看Mycat服务的逻辑库USERDB,因为Mycat的逻辑库USERDB对应数据库test(在部署主从数据库时已安装),所以可以查看库中已经创建的表company
#mysql -h127.0.0.1 -P8066 -uroot -p123456
#show databases;
#use USERDB
#show tables;
# select * from company;
用mycat服务添加表数据
在Mycat虚拟机上使用mysql命令对表company添加一条数据(2,"basketball","usa"),添加完毕后查看表信息
#insert into company values(2,"bastetball","usa");
# select * from company;
验证Mycat服务对数据库读写操作分离
在Mycat虚拟机节点使用mysql命令,通过9066端口查询对数据库读写操作的分离信息。可以看到所有的写入操作WRITE_LOAD数都在db1主数据库节点上,所有的读取操作READ_LOAD数都在db2主数据库节点上。
#mysql -h127.0.0.1 -P9066 -uroot -p123456 -e 'show @@datasource;'
构建读写分离的数据库集群相关推荐
- 1+X 云计算运维与开发(中级)案例实战——使用 Mycat 构建读写分离的数据库集群
1+X 云计算运维与开发(中级)案例实战--使用 Mycat 服务构建读写分离的数据库集群 前言 思路 实操 1.修改主机名,修改主机映射,配置yum源 2.给mycat机安装java服务,给db1和 ...
- 项目练习:构建读写分离的数据库集群
目录 一.目标实现 二.项目准备 三.项目实施 1.配置基础环境 1.1修改主机名 1.2配置3台群集虚拟机的/etc/hosts文件 1.3.配置网卡 1.4.配置本地yum源 2.部署Mycat中 ...
- mysql cluster 读写分离_mysql数据库集群实现高可用读写分离_一点课堂(多岸学院)...
环境信息 操作系统:centos6.8 #mysql版本 mysql-community-client-5.7.25-1.el6.x86_64.rpm mysql-community-server-5 ...
- 负载与读写分离图片服务器集群模型
对于绝大多数网站,图片资源是一个非常重要的元素.社区论坛里面图片相册,电子商务线上产品展示图,移动端应用图片分享功能等.都在说互联网正在处于读图时代,各大中小型网站都需要保持良好的图片处理能力.需要支 ...
- 浅谈高性能数据库集群——读写分离
作者 陈彩华 贝聊Java后端工程师 文章转载交流请联系 caison@aliyun.com 复制代码 最近学习了阿里资深技术专家李运华的架构设计关于读写分离的教程,颇有收获,总结一下. 本文主要介绍 ...
- 浅谈高性能数据库集群 —— 读写分离
1. 读写分离概述 2. 适用场景 3. 引入的系统复杂度问题 最近学习了阿里资深技术专家李运华的架构设计关于读写分离的教程,颇有收获,总结一下. 本文主要介绍高性能数据库集群读写分离相关理论,基本架 ...
- 程序员修神之路--略懂数据库集群读写分离而已
" 灵魂拷问: 解决数据库读写瓶颈有哪些解决方案呢? 这些方案解决了什么问题呢? 这些方案有那些优势和劣势呢? 一个可以抵抗高并发流量系统的背后必定有一个高性能的数据库集群,就像每一个成功的 ...
- 高性能数据库集群:读写分离
目录 1.前言 2.读写分离 2.1 什么是读写分离? 2.2 什么情况下需要读写分离? 2.3 复制延迟 2.4 分配机制 2.5 Mysq支持的复制类型及与原理 1.前言 关系数据库由于其 ACI ...
- mysql 数据库集群搭建:(四)pacemaker管理三台maxscale集群,搭建mariadb读写分离中间层集群...
为什么80%的码农都做不了架构师?>>> <mysql 数据库集群搭建:(一)VirtualBox中多台CentOS虚拟机间和windows主机间互通以及访问互联网设置& ...
最新文章
- 2022-2028年中国文化旅游业投资分析及前景预测报告(上中下卷)
- 在Windows下使用gcc
- 写作—开启技术成长之路
- flutter显示图标_Flutter使用Iconfont图标
- RuntimeError: Model class paypal.standard.ipn.models.PayPalIPN doesn't declare an explicit app_label
- mfc编写鼠标键盘_黑客为什么都不用鼠标?进来你就懂了!
- js 多个定时器_Node.js系列深入浅出Node模块化开发——CommonJS规范
- Directx11教程(54) 简单的基于GS的billboard实现
- 徐思201771010132《面向对象程序设计(java)》第七周学习总结
- Navicat模糊查询表
- LitePal使用踩坑指南
- VDI IDV VOI
- 视频怎么去水印教程 视频怎么去水印无痕迹
- encapsulation dot1q vlan-id命令
- python八进制表示_八进制python
- java实现创蓝短信
- Ansible(未完待续)
- android 开发者模式 手机变慢,安卓手机速度变慢怎么办,教你一招手机速度立马恢复顺畅...
- Redis-简单介绍及基本数据类型【随笔一】
- hadoop配置、运行错误总结
热门文章
- 用frida 修改陌陌定位 fake momo gps (知乎同标题为本作者发)
- MarkDown教程画图篇1(typora)
- 集成学习boosting和bagging
- OSG三维渲染引擎编程学习之三十六:“第四章:OSG几何体绘制” 之 “4.1 OSG基础绘图类”
- 第十八届全国大学智能汽车竞赛报名信息统计:西部赛区报名队伍
- 【转】如何成为一个牛逼的程序员
- 有没有测试女生暗恋的软件,判断一个女生有多喜欢你?有一套专门的“测试方法”,一试便知...
- 金山文档服务器,金山云-文档中心-金山云服务器计费方式以及免费云服务器申请...
- VS2010连接数据库时,发现没有oleDbCommand或oleDbConnection控件
- 62.菜鸟福音 60条笔记本电脑使用经典技巧