官方下載地址:http://dl.mycat.io/mysql
環境:mysql 5.6 mysql-5.6.42-linux-glibc2.12-x86_64.tar.gz lunix centos 7.0 ip: 192.168.1.12 :3306linux
mycat 1.6 Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz lunix centos 7.0 ip:192.168.1.3 :8066sql
jdk 1.8.0_73數據庫
2.解壓mycatcentos
一樣使用rz工具將它上傳到/software文件夾下 並解壓到/user/local路徑下(解壓後的文件名就叫作mycat)工具
進入到/usr/local/mycat/bin/url
它下面的mycat是啓動文件unix
./mycat start 啓動rest
./mycat stop 中止code
./mycat restart 重啓
./mycat status 查看mycat的啓動狀態
這樣mycat就安裝好了
前面也提到了,mycat安裝在了192.168.1.3這臺機器上,而且前提裝好了jdk。
先用navicat 連接192.168.1.12裝了個單機版的mysql。在這個上面,建立3個數據庫db1/db2/db3,這幾個庫中都建一張item(商品表)
建表語句很簡單
CREATE TABLE `item` ( `id` int(11) NOT NULL COMMENT '主鍵id', `name` varchar(20) DEFAULT NULL COMMENT '名稱', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
在安裝目錄的/usr/local/mycat/conf文件夾下,是mycat的各類配置文件存儲的地方。
而簡單的分庫分表操做,須要修改這三個配置文件
schema.xml
server.xml
rule.xml
schema.xml配置
<?xml version="1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schema xmlns:mycat="http://io.mycat/"> <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100"> <!-- auto sharding by id (long) --> <table name="item" dataNode="dn1,dn2,dn3" rule="mod-long" /> </schema> <!-- <dataNode name="dn1$0-743" dataHost="localhost1" database="db$0-743" /> --> <dataNode name="dn1" dataHost="localhost1" database="db1" /> <dataNode name="dn2" dataHost="localhost1" database="db2" /> <dataNode name="dn3" dataHost="localhost1" database="db3" /> <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="192.168.1.12:3306" user="root" password="root"> </writeHost> </dataHost> </mycat:schema>
server.xml
注意用戶名鏈接的schema的TESTDB要和schema.xml和保持一致
而鏈接的默認端口是8066 ,用navicat 連接
經過navicat 給mycat 插入數據
INSERT INTO item(id, NAME) VALUES(1, 'a'); INSERT INTO item(id, NAME) VALUES(2, 'b'); INSERT INTO item(id, NAME) VALUES(3, 'c'); INSERT INTO item(id, NAME) VALUES(4, 'd'); INSERT INTO item(id, NAME) VALUES(5, 'f'); INSERT INTO item(id, NAME) VALUES(6, 'g');
SELECT * FROM item;
插入了6條數據,能夠看到查詢出來的不是按照順序的。
而看192.168.1.12的db1/db2/db3的庫
db1:
db2:
db3:
雖然分庫了,但能夠經過排序將不一樣庫中的數據在查詢後,在mycat中排序