ä¸.ä¸è½½åå®è£
å®ç½ï¼http://www.mycat.io/
ä¸è½½å°åï¼http://dl.mycat.io/
使ç¨ä»ç»ï¼https://github.com/MyCATApache/Mycat-Server/wiki
éæ©å¯¹ç¨ççæ¬ä¸è½½ï¼è¿é以 Mycat-server-1.6-RELEASE-20161028204710-win.tar.gz 为ä¾
没æä¸è½½å°çå¯ä»¥å°æçäºçä¸è½½ï¼æ1.6çwindowsï¼macålinuxçæ¬
é¾æ¥ï¼https://pan.baidu.com/s/14_MK1hr7Im-nHJRJVWQJoA
æåç ï¼d9ud
Â
1.mycatæ¯åºäºjavaè¯è¨å¼åçï¼æ以éè¦å å®è£ javaç¯å¢ï¼ï¼è¿ä¸æ¥ä¸ä»ç»ï¼
2.ä¸è½½ Mycat-server-1.6-RELEASE-20161028204710-win.tar.gz 解åå°æ¬å°è¿å ¥Mycat-server-1.6-RELEASE-20161028204710-win\mycat\bin ç®å½
è¶ çº§æéæå¼cmd,æ§è¡ mycat.bat instatll
å®è£ æåã
常ç¨å½ä»¤
äº.é 置使ç¨
\Mycat-server-1.6-RELEASE-20161028204710-win\mycat\conf ä¸ä¸»è¦è¦é ç½®è¿å个æ件
- server.xml é ç½®mycatçç¨æ·ç»å½ä¿¡æ¯ï¼ä»¥åç¨æ·æé
- schema.xml é ç½®ååºå表ï¼é»è¾åºä¸ç©çåºæ å°å ³ç³»
- rule.xml é ç½®ååºå表è§å
- wrapper.conf é ç½®ç¯å¢ä¿¡æ¯
ç°å¨æ们è¦ç¨mycatåä¸ä¸ªç®åçä¾åï¼å¨127.0.0.1:3306çä¸ä¸ªå®ä¾ä¸å建ä¸ä¸ªæ°æ®åº db1ï¼db2ï¼db3ï¼æ°æ®åºæä¸å¼ goodsåå表ï¼è¦æ±éè¿åå表çèªå¢ä¸»é®å»æ¸%3åé ä¸åçæ°æ®å°ä¸ä¸ªæ°æ®åºä¸ï¼
- 建åºå»ºè¡¨
建åºï¼
create database db1 character set utf8;
create database db2 character set utf8;
create database db3 character set utf8;
建表ï¼
CREATE TABLE `goods` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`name` varchar(64) NOT NULL,
`price` decimal(10,0) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
Â
- server.xml
é ç½®é»è¾åºä¸è¿æ¥ä¿¡æ¯
<user name="root">
<property name="password">123456</property>
<property name="schemas">TESTDB</property>
</user>
- schema.xml
é ç½®éè¦å表ï¼è§åï¼ä»¥åé»è¾åºåç©çåºæ å°å ³ç³»
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
<!-- 表é
ç½® dataNode æ è¯ä¸ä¸ªæ°æ®èç¹ ruleå表çè§å è¿éæ¯æ3å»æ¸ 0,1ï¼2 -->
<table name="goods" primaryKey="id" autoIncrement="true" dataNode="dn1,dn2,dn3" rule="mod-long" />
</schema>
<!-- èç¹é
ç½® èç¹å¯¹ç¨çç©çæºå¨ å æ°æ®åº -->
<dataNode name="dn1" dataHost="dataHost1" database="db1" />
<dataNode name="dn2" dataHost="dataHost1" database="db2" />
<dataNode name="dn3" dataHost="dataHost1" database="db3" />
<!-- ç©çæºå¨é
ç½® -->
<dataHost name="dataHost1" 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="127.0.0.1:3306" user="root"
password="admin123">
</writeHost>
</dataHost>
- å¯å¨mycat
å¯å¨æåï¼è¯´æé ç½®ä¹æ£ç¡®äºï¼
ç¶åæ们就å¯ä»¥åè¿æ¥mysqlä¸æ ·çæ¹å¼ï¼è¿æ¥å°mycatï¼å¯¹æ°æ®è¿è¡æä½äºï¼
mysql -uroot -p123456 -h127.0.0.1 -P8066Â
mycaté»è®¤è¿æ¥ç«¯å£æ¯8066
è¿æ¥åï¼æ们åªè½çå°ä¸ä¸ªé»è¾åºTESTDB
ç°å¨å¯¹æ°æ®åºè¿è¡insertæä½ï¼æ¥çææï¼
æå ¥6æ¡æ°æ®
insert into goods (id,name,price) values (1,'11',11);
insert into goods (id,name,price) values (2,'11',11);
insert into goods (id,name,price) values (3,'11',11);
insert into goods (id,name,price) values (4,'11',11);
insert into goods (id,name,price) values (5,'11',11);
insert into goods (id,name,price) values (6,'11',11);
åå«æ¥çæ们çdb1ï¼db2ï¼db3,å¯ä»¥åç°6æ¡æ°æ®å·²ç»è¢«åå°äºä¸ä¸ªæ°æ®åºä¸
explain select * from goods;
Â
æ¥è¯¢æ°æ®çæ¶åï¼å¯ä»¥çå°sql被ååå°dn1,dn2,dn3ä¸ä¸ªèç¹å»æ§è¡
è³æ¤æ们çmycatå ¥é¨çº§æç¨å·²ç»å¦ä¼äºï¼æ¯ä¸æ¯å¾ç®åå¢
ä¸ä¸ç¯ å°ä¼å¯¹é 置详解å è¿è¡ä¸ªåæï¼
ä¸èµ·æé¿ï¼ä¸èµ·å¦ä¹ ï¼è®°å¾ç¹å ³æ³¨å¦
Â
Â