MyCAT入門實踐
1.MyCAT簡單介紹
MyCAT是一個徹底開源的,面向企業應用開發的大數據庫集群,支持事務、ACID、可以替代MySQL的加強版數據庫,是一個可以視為MySQL集群的企業級數據庫,用來替代昂貴的Oracle集群
融合了內存緩存技術、NoSQL技術、HDFS大數據的新型SQL Server,並且結合傳統數據庫和新型分布式數據倉庫的新一代企業級數據庫產品,是一個新穎的數據庫中間件產品
2.安裝JAVA環境
參考:Windows下Java環境變量配置 http://www.cnblogs.com/heyangyi/p/8942074.html
3.下載配置MyCat
下載地址:http://dl.mycat.io/1.6-RELEASE/
其他準備工作,安裝mysql,創建 db1,db2,db3三個數據庫
CREATE DATABASE `db1` /*!40100 DEFAULT CHARACTER SET utf8 */; CREATE DATABASE `db2` /*!40100 DEFAULT CHARACTER SET utf8 */; CREATE DATABASE `db3` /*!40100 DEFAULT CHARACTER SET utf8 */;
分別在三個數據庫中添加數據表:
CREATE TABLE `travelrecord` ( `id` bigint(20) NOT NULL, `user_id` varchar(100) DEFAULT NULL, `traveldate` date DEFAULT NULL, `fee` decimal(10,0) DEFAULT NULL, `days` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
解壓下載得mycat,修改目錄下得 conf 中的 schema.xml
<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="10.0.0.209:3306" user="sa" password="123456"> <!-- can have multi read hosts --> <readHost host="hostS2" url="10.0.0.209:3306" user="sa" password="123456" /> </writeHost> <writeHost host="hostS1" url="10.0.0.209:3306" user="sa" password="123456" /> <!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> --> </dataHost>
註意修改mysql所在得ip,port, user,password
配置mycat環境變量 MYCAT_HOME
4.運行測試MyCat
進入mycat的bin目錄,運行 startup_nowrap.bat
打開MySQL Workbench,添加Connections
Host 是Mycat 所在服務IP地址,端口默認為:8066,User 和Password 是在 Mycat conf 目錄下的server.xml中配置的 user 節點
測試插入數據到 travelrecord 表
insert into travelrecord(id,user_id,traveldate,fee,days) values(1,‘Victor‘,20160101,100,10); insert into travelrecord(id,user_id,traveldate,fee,days) values(5000001,‘Job‘,20160102,100,10); insert into travelrecord(id,user_id,traveldate,fee,days) values(10000001,‘Slow‘,20160103,100,10);
分別查看db1,db2,db3中的數據
SELECT * FROM db1.travelrecord;
SELECT * FROM db2.travelrecord;
SELECT * FROM db3.travelrecord;
三條數據分別被添加到3個數據庫中,這個與conf目錄下autopartition-long.txt的定義有關,這個文件主要定義auto-sharding-long的規則
# range start-end ,data node index # K=1000,M=10000. 0-500M=0 500M-1000M=1 1000M-1500M=2
其中0-500M條數據會進到 db1分片庫
其中500M-1000M條數據會進到 db2分片庫
其中1000M-1500M條數據會進到 db3分片庫
查詢剛剛添加的三天數據:進入mycat_conn鏈接裏面,會發現存在了TESTDB邏輯庫,執行查詢
SELECT * FROM travelrecord;
重要配置文件簡要說明
- server.xml是Mycat服務器參數調整和用戶授權的配置文件
- schema.xml是邏輯庫定義和表以及分片定義的配置文件
- rule.xml是分片規則的配置文件
、
MyCAT入門實踐