系统开发中,数据库是非常重要的一个点。除了程序的本身的优化,如:SQL语句优化、代码优化,数据库的处理本身优化也是非常重要的。主从、热备、分表分库等都是系统发展迟早会遇到的技术问题问题。Mycat是一个广受好评的数据库中间件,已经在很多产品上进行使用了。其前身是阿里大名鼎鼎的Cobar,Cobar在开源了一段时间后,不了了之。于是MyCAT扛起了这面大旗,在大数据时代,其重要性愈发彰显。
这篇文章主要是MyCAT的入门部署。
JDK
mycat运行时需要java开发环境
安装可参考:centos7 通过yum安装JDK1.8
MYSQL
Mycat是一个数据库中间件,并不具备数据存储的功能,可以简单理解为一个过渡服务。所以为实现数据的存储,需要部署物理数据库,以实现数据的存储。
安装可参考:Centos7 Yum安装 MySQL 5.7
Mycat官网:http://www.mycat.io
可以了解下Mycat的背景和应用情况,这样使用起来比较有信心。
Mycat下载地址: http://dl.mycat.io
官网有个文档,属于详细的介绍,初次入门,看起来比较花时间。
1.6.5 版本
才开始支持单库分表。安装:
根据不同的系统选择不同的版本。包括linux、windows、mac,作者考虑还是非常周全的,当然,也有源码版的。(ps:源码版的下载后,只要配置正确,就可以正常运行调试,这个赞一下。)
wget http://dl.mycat.io/1.6.5/Mycat-server-1.6.5-release-20180122220033-linux.tar.gz
tar -zxvf Mycat-server-1.6.5-release-20180122220033-linux.tar.gz
解压后,修改相关配置。配置文件都放在 mycat/conf 下。
mycat 代理数据库配置。
Mycat的配置文件,设置账号、参数等.
123456
mydb
设置user name,password及schemas;
name和password在连接代理数据库Mycat时使用;
schemas是逻辑库,要和schema.xml
里的 schema name 对应。
mycat逻辑数据库、表,到mysql物理数据库、表的映射关系。
Mycat对应的物理数据库和数据库表的配置.
select user()
schema name 要和server.xml
对应上,
user表设置分表3张 (city_1, city_2, city_3)
,只设置一个 datanote(即一个物理数据库服务)
,
rule采用取模模式mod-long。
writeHost 和 readHost设为同一数据库。
Mycat分片(分库分表)规则.
id
mod-long
3
此次选用默认的mod-long规则,只需修改count数.
修改property count 等于3(默认值即为3,如果你需要分出更多的表,在此进行修改为你的分表数)
。
先在MySQL库上,建数据库mydb
,并在此数据库中建4张表,city
、city_1
、city_2
、city_3
,且四张表结构相同。表中字段为id, country, name, state
。
CREATE TABLE `city` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`country` varchar(50),
`name` varchar(50),
`state` varchar(50),
PRIMARY KEY (`id`)
);
进入mycat/bin 目录
cd ../bin
启动:
./mycat start
查看启动状态:
./mycat status
停止:
./mycat stop
重启(改变上面的xml配置不用重启,管理端可以重新载入):
./mycat restart
mycat启动日志:
cat ./logs/wrapper.log
mycat 应用日志:
cat ./logs/mycat.log
server.xml
文件中配置的用户名和密码 insert into city(id, country, name, state) VALUES (2, '中国', '长沙','湖南')
青冥有晓月