1. 程式人生 > >windows安裝Mycat並測試

windows安裝Mycat並測試

set balance 當前 localhost select 技術分享 star 插入 sele

1、下載系統安裝包

選擇相應的版本進行下載,地址:http://dl.mycat.io/ 。Mycat數據庫分庫分表中間件介紹 http://www.mycat.io/

2、安裝

安裝mycat前需要保證系統已安裝過jdk和mysql,將下載好的mycat安裝包解壓到某個目錄下,然後進入mycat解壓目錄下的bin目錄(打開cmd控制臺確保是以管理員身份運行),執行安裝命令:

D:\develop\Mycat\bin>mycat.bat install

3、常用命令

可以使用如下命令啟動mycat服務

mycat.bat start

啟動後可以通過如下命令查看mycat的運行狀態:

mycat.bat status

可以使用如下命令停止mycat服務

mycat.bat stop

重啟服務命令

mycat.bat restart

4、測試

4.1 配置文件修改

進入conf目錄,打開schema.xml配置文件,schema.xml配置文件是mycat中重要的配置文件之一,它涵蓋了mycat的邏輯庫、表、分片規則、分批按節點及數據源。

對默認的schema.xml進行簡單的修改配置,主要配置本機的mysql連接信息。找到dataHost節點,按照當前自己mysql的配置信息來修改配置。如下:

<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="localhost:3306
" user="root" password="root"> <!-- can have multi read hosts --> <!--<readHost host="hostS2" url="192.168.1.200:3306" user="root" password="xxx" />--> </writeHost> <!-- <writeHost host="hostS1" url="localhost:3316" user="root" password="123456" /> --> <!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> --> </dataHost>

修改了hostM1的連接密碼,註釋了名稱為hostS2的只讀標簽和名稱為hostM2的寫標簽

4.2 mycat連接

和mysql連接一樣,就是端口改為8066,用戶名和密碼可以查看mycat conf目錄中的server.xml中的定義,本次使用的是默認的root,123456來連接,連接成功後只能操作名為TESTDB的數據庫。

技術分享圖片

4.3 在mysql中創建數據庫

按照schema.xml配置中的示例,我們需要建立分別名為db1、db2、db3的數據庫。連接mysql,建立相關的數據庫:

create database db1 character set utf8;
create database db2 character set utf8;
create database db3 character set utf8;

4.4 在mycat中創建全局表測試

create table company(id int not null primary key,name varchar(100),sharding_id int not null);

company表示全局表,使用explain create table company(id int not null primary key,name varchar(100),sharding_id int not null);查看執行計劃。如圖:

技術分享圖片

在mysql中可以看到db1,db2,db3數據庫中出現company表

技術分享圖片

接著插入一條測試數據

mysql> insert into company(id,name,sharding_id) values(1,‘hello, mycat‘,10000);

查看執行狀態如下:

技術分享圖片

查看mysql中company表的數據:

技術分享圖片技術分享圖片技術分享圖片

可以看到三個庫的company表都有插入數據

4.5 水平表測試

mysql> create table travelrecord(id int not null primary key,name varchar(100));

查看執行計劃如下圖:

技術分享圖片

查看mysql的db1,db2,db3數據庫:

技術分享圖片

接著插入一條數據:

mysql> insert into travelrecord(id,name) values(1,mycat);

查看執行計劃如下圖:

技術分享圖片

從上面可以看到只用dn1節點插入了數據,查看mysql的db1,db2,db3三個數據庫的travelrecord表的數據

技術分享圖片技術分享圖片技術分享圖片

可以看到只有db1中的travelrecord表有插入數據

5、問題

5.1 啟動服務是報錯 The Mycat-server service was launched, but failed to start。解決:

修改mycat下的\conf\wrapper.conf文件中的

wrapper.java.command=java

改成

wrapper.java.command=C:\Java\jdk1.7.0_21\bin\java.exe

指定java

5.2 啟動失敗 The specified size exceeds the maximum representable size。解決:

修改mycat下的\conf\wrapper.conf文件中的

wrapper.java.additional.10=-Xmx4G
wrapper.java.additional.11=-Xms1G

改為:

wrapper.java.additional.10=-Xmx512M
wrapper.java.additional.11=-Xms64M

重新啟動即可

windows安裝Mycat並測試