mycat是什么
是目前最流行的分布式数据库中间插件,更多解释见官网
如今随着互联网的发展,数据的量级也是撑指数的增长,从GB到TB到PB。对数据的各种操作也是愈加的困难,传统的关系性数据库已经无法满足快速查询与插入数据的需求。这个时候NoSQL的出现暂时解决了这一危机。它通过降低数据的安全性,减少对事务的支持,减少对复杂查询的支持,来获取性能上的提升。但是,在有些场合NoSQL一些折衷是无法满足使用场景的,就比如有些使用场景是绝对要有事务与安全指标的。这个时候NoSQL肯定是无法满足的,所以还是需要使用关系性数据库。如何使用关系型数据库解决海量存储的问题呢?此时就需要做数据库集群,为了提高查询性能将一个数据库的数据分散到不同的数据库中存储,为应对此问题就出现了——MyCat
综上所述:Mycat作用为:能满足数据库数据大量存储;提高了查询性能。
下载安装
去mycat官网[http://www.mycat.io/ ]下载 符合你服务器的版本。 解压后就可以使用了(注意:mycat是java开发,需要安装jdk)。
root@iZ23iuzu9fvZ:[/usr/local/data/mycat]wget http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
--2018-09-20 15:03:29-- http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
Resolving dl.mycat.io... 210.51.26.184
Connecting to dl.mycat.io|210.51.26.184|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 15662280 (15M) [application/octet-stream]
Saving to: “Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz”
100%[====================================================================================================================================================================================================================================>] 15,662,280 507K/s in 30s
2018-09-20 15:04:00 (503 KB/s) - “Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz” saved [15662280/15662280]
#下载完成后解压
root@iZ23iuzu9fvZ:[/usr/local/data/mycat]ls
Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
root@iZ23iuzu9fvZ:[/usr/local/data/mycat]
root@iZ23iuzu9fvZ:[/usr/local/data/mycat]tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
mycat/bin/wrapper-linux-ppc-64
mycat/bin/wrapper-linux-x86-64
.........
##目录结构如下
root@iZ23iuzu9fvZ:[/usr/local/data/mycat/mycat]ll
total 24
drwxr-xr-x. 2 root root 4096 Sep 20 15:04 bin
drwxrwxrwx. 2 root root 4096 Mar 1 2016 catlet
drwxrwxrwx. 4 root root 4096 Sep 20 15:04 conf
drwxr-xr-x. 2 root root 4096 Sep 20 15:04 lib
drwxrwxrwx. 2 root root 4096 Oct 28 2016 logs
-rwxrwxrwx. 1 root root 217 Oct 28 2016 version.txt
配置
环境说明:服务器3307端口和3308端口已经安装了mysql服务区,用户名root 密码 :123456
进入conf目录,配置server.xml
#打开server.xml
root@iZ23iuzu9fvZ:[/usr/local/data/mycat/mycat/conf]vim server.xml
#配置user块 (其他配置项我们暂时先不管,可以去阅读官网文档)
......
<user name="root"> #连接mycat的用户名
<property name="password">123456</property> #连接mycat的密码
<property name="schemas">mysql3307</property> #真实数据库的映射,需要在schema.xml 中配置
<!-- 表级 DML 权限设置 -->
<!--
<privileges check="false">
<schema name="TESTDB" dml="0110" >
<table name="tb01" dml="0000"></table>
<table name="tb02" dml="1111"></table>
</schema>
</privileges>
-->
</user>
......
进入conf目录,配置schema.xml
<schema name="mysql3307" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"><!-- name属性就是我们在server.xml中配置的schema属性一致 DataNode属性就是下边 dataNode -->
</schema>
<dataNode name="dn1" dataHost="localhost1" database="test" /><!--这里database就是实际数据的名称 我这里用test dataHost属性和下边的dataHost连接-->
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<!-- can have multi write hosts -->
<!--<writeHost host="hostM1" url="localhost:3306" user="root"
password="123456">
<readHost host="hostS2" url="192.168.1.200:3306" user="root" password="xxx" />
</writeHost>
-->
<writeHost host="hostS1" url="127.0.0.1:3307" user="root"
password="123456" />
<!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> -->
</dataHost>
至此简单的配置已经完成
启动mycat
root@iZ23iuzu9fvZ:[/usr/local/data/mycat/mycat]./bin/mycat start
Starting Mycat-server...
启动是否成功 可以查看日志文件logs/wrapper.log ,启动成功或者失败、失败原理这里都有记录。
例如;这是我一次配饰错误导致的启动失败。
或者使用 ./bin/mycat status 命令查看运行状态
root@iZ23iuzu9fvZ:[/usr/local/data/mycat/mycat]./bin/mycat status
Mycat-server is running (15298).
测试连接
连接方式和操作 和连接mysql的方式一样, 如图:
可以看到连接成功。 root用户就是我们在server.xml 中配置的内容, 8066 是mycat监听的端口。
至此简单的mycat就搭建完成。