MyCAT是一個完全開源的,面向企業應用開發的大數據庫集羣,支持事務、ACID、能夠替代MySQL的增強版數據庫,是一個能夠視爲MySQL集羣的企業級數據庫,用來替代昂貴的Oracle集羣
融合了內存緩存技術、NoSQL技術、HDFS大數據的新型SQL Server,而且結合傳統數據庫和新型分佈式數據倉庫的新一代企業級數據庫產品,是一個新穎的數據庫中間件產品html
參考:Windows下Java環境變量配置 http://www.cnblogs.com/heyangyi/p/8942074.htmlnode
下載地址:http://dl.mycat.io/1.6-RELEASE/mysql
其餘準備工做,安裝mysql,建立 db1,db2,db3三個數據庫sql
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分佈式
進入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;
重要配置文件簡要說明
、