mycat是一款開源的資料庫中介軟體,前身是阿里的Cobar,Cobar在開源一段時間後處於沒人維護狀態,mycat應運而生扛起了Cobar的大旗,對於開發人員來說,使用mycat就像使用mysql一樣方便自如,無需關心後台有幾台資料庫。對於DBA來說,使用mycat可以很輕鬆的實現資料庫分庫分表、主從分離、資料庫叢集等操作。 目標
作者使用mycat完成兩台mysql分區即兩台資料庫做叢集,通過訪問mycat路由實現資料自動分區(根據id分配分配到不同的mysql伺服器)
環境
作業系統:centos 7
資料庫:mysql 5.6.35
mycat:1.5.1
jdk:1.7 機器列表
編號 |
ip |
作用 |
機器1 |
192.168.137.110 |
mycat路由 |
機器2 |
192.168.137.2 |
mysql |
機器3 |
192.168.137.3 |
mysql |
安裝步驟
1、機器1中安裝jdk。
(1)下載jdk-7u65-linux-x64.gz。
(2)解壓jdk
tar zxvf jdk-7u65-linux-x64.gz
(3)修改/etc/profile檔案,配置環境變數
(4)執行source/etc/profile,使/etc/profile生效。
2、機器1中安裝mycat。
(1)下載mycat,下載地址https://raw.githubusercontent.com/MyCATApache/Mycat-download/master/1.5-RELEASE/Mycat-server-1.5.1-RELEASE-20161130213509-linux.tar.gz。
(2)解壓mycat
tar zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
3、機器2、機器3安裝並啟動Mysql,安裝後需要增加機器1訪問資料庫的許可權,方法:
在機器2、機器3中的串連本機mysql資料庫,執行如下命令
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIEDBY '123456';
FLUSH PRIVILEGES;
4、在機器2、機器3中分別建立db1資料庫,執行如下命令:
CREATE DATABASE db1;
5、修改機器1中的mycat設定檔。
(1)修改mycat/conf/schema.xml,修改後的內容如下:
(2)修改mycat/conf/autopartition-long.txt,修改後的內容如下(由於我的測試環境使用了兩台資料庫,所以需要在autopartition-long.txt刪掉一個節點配置)
6、啟動mycat
./mycat/bin/mycatstart。
啟動後可以在mycat/log/mycat.log中查看到如下資訊,代表配置並啟動成功
7、使用mysql用戶端工具(如sqlyog)串連mycat。
注意:mycat預設連接埠8066,非3066,使用者名稱密碼在mycat/config/server.xml檔案中查看:
8、在sqlyog中執行。
CREATETABLE travelrecord (id BIGINT NOT NULL PRIMARY KEY,user_idVARCHAR(100),traveldate DATE, fee DECIMAL,days INT);INSERTINTO travelrecord(id,user_id,traveldate,fee,days) VALUES(1,'Victor',20160101,100,10);INSERTINTO travelrecord(id,user_id,traveldate,fee,days) VALUES(5000001,'Job',20160102,100,10);
9、在機器2中登陸本機mysql,執行
select * from travelrecord;
在機器2中登陸本機mysql,執行
select * from travelrecord;
根據上圖結果可以看到,兩條記錄各寫到對應的庫中。