Erlo

Mycat 读写分离

2019-01-12 09:43:18 发布   484 浏览  
页面报错/反馈
收藏 点赞

Mycat 读写分离:

         读写分离,简单地说是把对数据库的读和写操作分开,以对应不同的数据库服务器。主数据库提供写操作,从数据库提供读操作,这样能有效地减轻单台数据库的压力。主数据库进行写操作后,数据及时同步到所读的数据库,尽可能保证读、写数据库的数据一致,比如MySQL的主从复制、Oracle的data guard、SQL Server的复制订阅等。


 

看上图  我们要进行对数据库的查询操作 当Mycat收到一个SQL时,会先解析这个SQL,查找涉及到的表,然后看此表的定义,如果有分片规则,则获取到SQL里分片字
段的值,并匹配分片函数,得到该SQL对应的分片列表,然后将SQL发往这些分片去执行,最后收集和处理所有分片返回的结果
数据,并输出到客户端。以select * from Orders where prov=?语句为例,查到prov=wuhan,按照分片函数,wuhan返回
dn1,于是SQL就发给了MySQL1,去取DB1上的查询结果,并返回给用户。

我们下面来进行 对Mycat的操作和使用

首先  要进入 Mycat的官网

Mycat官网:http://www.mycat.io/
官网了解Mycat原理。

Mycat下载地址:http://dl.mycat.io/

下载:
建议大家选择 1.6-RELEASE 最新版本。

进行使用Linux部署Mycat

上传 解压缩到  tar -zxvf Mycat-server-1.6.6.1-release-20181031195535-linux.tar.gz -C /usr/local

会解压缩成一个Mycat的文件夹,进入文件夹 显示有七个目录  bin catlet conf lib logs tmlogs version.txt ,我们只需要用到 bin 和 conf  文件夹,

进入conf 文件夹, vi ./schema.xml  来配置 schema.xml 文件  下面给大家展示一下我的配置

1 2 3 4 5 6 long) --> 7

8 9 10 11 12 13 14 15 16 --> 17 18 writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> 19 select user() 20 21 22 password="5-*8;P=etsKz"> 23 24 25

 

配置了三个数据库,接下来看下 server.xml文件  vi ./server.xml   

直接翻到最下面 看一下用户

 1         
 2                 root
 3                 TESTDB
 4 
 5                 
 6                  7                 
 8                         
 9                                 
10
11
12
13 --> 14

配置好server.xml 文件后  进入mysql  把mysql中的mysql.user表中的root 用户的 host改为%后,重启mysql,mycat连接后就可以操作表了


退出conf文件夹  进入bin 文件  

./mycat console

  当显示 

  已经启动成功

 

便可以使用 Mycat连接mysql   Mycat 默认端口号是 8066

我使用的是  Centos:7

完毕!

谢谢大家!

登录查看全部

参与评论

评论留言

还没有评论留言,赶紧来抢楼吧~~

手机查看

返回顶部

给这篇文章打个标签吧~

棒极了 糟糕透顶 好文章 PHP JAVA JS 小程序 Python SEO MySql 确认