mycat读写分离中间件

5、部署Mycat读写分离中间件服务

5.1安装Mycat服务

将Mycat服务的二进制软件包Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz上传到Mycat虚拟机的/root目录下,并将软件包解压到/use/local目录中

5.2赋予解压后的mycat目录权限

5.3向/etc/profile系统变量文件中添加mycat服务的系统变量并生效

5.4编辑mycat配置Mycat服务读写分离的schema.xml配置文件在/usr/local/mycat/conf/目录下,可以在文件中定义一个逻辑库,使用户可以通过Mycat服务管理该逻辑库对应的MariaDB数据库。在这里定义一个逻辑库schema,name为USERDB;该逻辑库USERDB对应数据库database为test(在部署主从数据库时已安装);设置数据库写入节点为主节点db1;设置数据库读取节点为从节点db2。(可以直接删除原来schema.xml的内容,替换为如下。)

root@mycat \~\]# vi /usr/local/mycat/conf/schema.xml \ \ \ \\ \ \ \select user()\ \ \ \ \ \ 解析:代码说明: l sqlMaxLimit:配置默认查询数量。 l database:为真实数据库名。 l balance="0":不开启读写分离机制,所有读操作都发送到当前可用的writeHost上。 l balance="1":全部的readHost与stand by writeHost参与select语句的负载均衡,简单来说,当双主双从模式(M1-\>S1,M2-\>S2,并且M1与M2互为主备),正常情况下,M2、S1、S2都参与select语句的负载均衡。 l balance="2":所有读操作都随机的在writeHost、readhost上分发。 l balance="3":所有读请求随机地分发到wiriterHost对应的readhost执行,writerHost不负担读压力,注意balance=3只在1.4及其以后版本有,1.3版本没有。 l writeType="0":所有写操作发送到配置的第一个writeHost,第一个挂了需要切换到还生存的第二个writeHost,重新启动后已切换后的为准,切换记录在配置文件dnindex.properties中。 l writeType="1":所有写操作都随机的发送到配置的writeHost。 5.5修改配置文件权限:文件路径:/usr/local/mycat/conf/schema.xml 编辑mycat的访问用户 修改/usr/local/mycat/conf/目录下的server.xml文件,修改root用户的访问密码与数据库,密码设置为000000,访问Mycat的逻辑库为USERDB,命令如下(一定看准、填对) 直接按住shift键+G,修改的内容在文章后面 ![](https://i-blog.csdnimg.cn/direct/c6518647b13b4c6487f2a7520c66ef6c.png) 然后删除如下几行: \ \user\ \TESTDB\ \true\ \ 5.6启动mycat服务 ![](https://i-blog.csdnimg.cn/direct/169b9ecab8144b3294aca71e3fe64b57.png) 5.7通过查看端口是否正确安装: ![](https://i-blog.csdnimg.cn/direct/584f06ecff4e4852bf45c85fdd9462e5.png) 如果有开放的8066和9066说明mycat服务开启成功 6、验证数据库集群服务读写分离功能 6.1先在Mycat虚拟机上使用Yum安装mariadb-client服务 ![](https://i-blog.csdnimg.cn/direct/088a52b50f8741c187e14992f112a212.png) 6.2在Mycat虚拟机上使用mysql命令查看Mycat服务的逻辑库USERDB,因为Mycat的逻辑库USERDB对应数据库test(在部署主从数据库时已安装),所以可以查看库中已经创建的表company。命令如下: ![](https://i-blog.csdnimg.cn/direct/673a571b58844c29963589c35edf5421.png) 6.3用Mycat服务添加表数据 在Mycat虚拟机上使用mysql命令对表company添加一条数据(2,"basketball","usa"),添加完毕后查看表信息。命令如下: ![](https://i-blog.csdnimg.cn/direct/2ff23803138b4747ad3eed17fcc2f793.png) 6.4验证mycat服务对数据库读写操作分离 在Mycat虚拟机节点使用mysql命令,通过9066端口查询对数据库读写操作的分离信息。可以看到所有的写入操作WRITE_LOAD数都在db1主数据库节点上,所有的读取操作READ_LOAD数都在db2主数据库节点上。由此可见,数据库读写操作已经分离到db1和db2节点上了。命令如下。 ![](https://i-blog.csdnimg.cn/direct/e0487e4416ac4889b1a5a7ae83c43b7f.png) 至此,Mycat读写分离数据库案例完成。

相关推荐
CryptoRzz31 分钟前
欧美(美股、加拿大股票、墨西哥股票)股票数据接口文档
java·服务器·开发语言·数据库·区块链
arvin_xiaoting39 分钟前
#zsh# #Ubuntu# 一键安装zsh、oh-my-zsh、常用插件
linux·ubuntu·elasticsearch
脏脏a1 小时前
【Linux】Linux工具漫谈:yum 与 vim,高效操作的 “左膀右臂”
linux·运维·服务器
APItesterCris1 小时前
构建弹性数据管道:利用淘宝商品 API 进行流式数据采集与处理
linux·数据库·windows
九河云1 小时前
TOS + 数字孪生:集装箱码头的智能进化密码
大数据·服务器·网络·数据库·数字化转型
艾莉丝努力练剑1 小时前
【C++STL :stack && queue (一) 】STL:stack与queue全解析|深入使用(附高频算法题详解)
linux·开发语言·数据结构·c++·算法
kyle~2 小时前
计算机系统---CPU的进程与线程处理
linux·服务器·c语言·c++·操作系统·计算机系统
手握风云-2 小时前
MySQL数据库精研之旅第十九期:存储过程,数据处理的全能工具箱(二)
数据库·mysql
孟意昶2 小时前
Doris专题17- 数据导入-文件格式
大数据·数据库·分布式·sql·doris
NiKo_W2 小时前
Linux 进程通信——基于责任链模式的消息队列
linux·服务器·消息队列·责任链模式·进程通信