學習資料https://blog.51cto.com/ygqygq2/1973653node
Mycat是一個完全開源面向企業應用開發的大數據庫集羣軟件。mysql
環境:mysql5.6 ip192.168.56.101 root/123456 (密碼必須爲這個,mycat文件默認定義)
建立3個數據庫爲下面作實驗用
mysql> create database db1;
mysql> create database db2;
mysql> create database db3;linux
安裝Mycat
wget https://raw.githubusercontent.com/MyCATApache/Mycat-download/master/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
cd mycat/
cd bin
./mycat start
mysql -uroot -p -P8066 -h127.0.0.1 -DTESTDB
輸入密碼123456git
設置mycat_home環境變量
vim /etc/profile
export MYCAT_HOME=/root/mycat
使環境變量生效
source /etc/profilegithub
便可登陸mycat。跟登陸mysql同樣的。
建立表和數據,表面上是建立在TESTDB上,時間是建立在mysql db1,db2,db3
mysql> create table travelrecord (id bigint not null primary key,user_id varchar(100),traveldate DATE, fee decimal,days int);
mysql> insert into travelrecord(id,user_id,traveldate,fee,days) values(1,'Victor',20160101,100,10);
mysql> insert into travelrecord(id,user_id,traveldate,fee,days) values(5000001,'Job',20160102,100,10);
mysql> insert into travelrecord(id,user_id,traveldate,fee,days) values(10000001,'Slow',20160103,100,10);sql
在mysql上面查看,果真被分配到3個不通的數據庫了
mysql> select * from db1.travelrecord;
+----+---------+------------+------+------+
| id | user_id | traveldate | fee | days |
+----+---------+------------+------+------+
| 1 | Victor | 2016-01-01 | 100 | 10 |
+----+---------+------------+------+------+
1 row in set (0.00 sec)數據庫
mysql> select * from db2.travelrecord;
+---------+---------+------------+------+------+
| id | user_id | traveldate | fee | days |
+---------+---------+------------+------+------+
| 5000001 | Job | 2016-01-02 | 100 | 10 |
+---------+---------+------------+------+------+
1 row in set (0.00 sec)vim
mysql> select * from db3.travelrecord;
+----------+---------+------------+------+------+
| id | user_id | traveldate | fee | days |
+----------+---------+------------+------+------+
| 10000001 | Slow | 2016-01-03 | 100 | 10 |
+----------+---------+------------+------+------+
1 row in set (0.00 sec)服務器
爲何會被分到這3個數據庫,是由於文件autopartition-long.txt 定義的
[root@minion conf]# cat /root/mycat/conf/autopartition-long.txt
.# range start-end ,data node index
.# K=1000,M=10000.
0-500M=0
500M-1000M=1
1000M-1500M=2ide
想看數據具體會被分配到哪裏能夠用explain路由分析
mysql>explain insert into travelrecord(id,user_id,traveldate,fee,days) values(1,'Victor',20160101,100,10);
Mycat重要的配置文件server.xml是Mycat服務器參數調整和用戶受權的配置文件schema.xml是邏輯庫定義和表以及分片定義的配置文件rule.xml是分片規則的配置文件