mycat在windows環(huán)境下的安裝和啟動
1、下載
從如下地址下載mycat的安裝包:
2、解壓
解壓下載的安裝包
3、安裝
安裝mycat前需要先安裝jdk和mysql。mycat1.6版本建議使用的jdk是1.7以上版本,mysql建議使用5.6版本。安裝玩jdk和mysql后,進(jìn)入mycat解壓目錄下的bin目錄,如本文的路徑如下:
D:\Program Files (x86)\mycat\bin
安裝shift鍵,點(diǎn)擊鼠標(biāo)右鍵,選擇"在此處打開命令窗口"打開命令行窗口(注意需要管理員賬戶登錄,如果不是請使用管理員身份運(yùn)行cmd打開命令行窗口)。在打開的命令行窗口中執(zhí)行如下命令安裝mycat:
mycat.bat install
4、啟動和停止
可以使用如下命令啟動mycat服務(wù)
mycat.bat start
啟動后可以通過如下命令查看mycat的運(yùn)行狀態(tài):
mycat.bat status
可以使用如下命令停止mycat服務(wù)
mycat.bat stop
5、測試
5.1、修改mycat與mysql的鏈接信息
我們打開mycat安裝目錄,并進(jìn)入conf目錄,打開schema.xml配置文件,schema.xml配置文件是mycat中重要的配置文件之一,它涵蓋了mycat的邏輯庫、表、分片規(guī)則、分批按節(jié)點(diǎn)及數(shù)據(jù)源。這里我們對默認(rèn)的schema.xml進(jìn)行簡單的修改配置(注意備份一個原始的配置文件),主要配置本機(jī)的mysql鏈接信息。找到dataHost節(jié)點(diǎn),按照當(dāng)前自己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的只讀標(biāo)簽和名稱為hostM2的寫標(biāo)簽。
5.2、創(chuàng)建數(shù)據(jù)庫
按照schema.xml配置中的示例,我們需要建立分別名為db1、db2、db3的數(shù)據(jù)庫。鏈接mysql,建立相關(guān)的數(shù)據(jù)庫:
mysql -uroot -proot; create database db1 character set utf8; create database db2 character set utf8; create database db3 character set utf8;
5.3、鏈接數(shù)據(jù)庫
使用數(shù)據(jù)庫鏈接工具或命令。本文使用navicat鏈接數(shù)據(jù)庫。使用navicat鏈接數(shù)據(jù)庫時的主要參數(shù)配置如下:
端口號:8066
用戶名和密碼可以查看mycat conf目錄中的server.xml中的定義,本文使用的是默認(rèn)的root,123456來連接,連接成功后只能操作名為TESTDB的數(shù)據(jù)庫;
5.4、全局表的測試
使用navicat打開命令列界面。輸入如下命令創(chuàng)建數(shù)據(jù)表:
USE TESTDB; create table company(id int not null primary key,name varchar(100),sharding_id int not null);
之后使用如下命令查看創(chuàng)建表命令的執(zhí)行狀態(tài):
explain create table company(id int not null primary key,name varchar(100),sharding_id int not null);
因?yàn)閏ompany在schema.xml中北定義為了全局表,所以正常情況下可以看到如下類似結(jié)果:
+-----------+----------------------------------------------------------------------------------------------+ | DATA_NODE | SQL | +-----------+----------------------------------------------------------------------------------------------+ | dn1 | create table company(id int not null primary key,name varchar(100),sharding_id int not null) | | dn2 | create table company(id int not null primary key,name varchar(100),sharding_id int not null) | | dn3 | create table company(id int not null primary key,name varchar(100),sharding_id int not null) | +-----------+----------------------------------------------------------------------------------------------+ rows in set
緊接著我們嘗試執(zhí)行如下命令執(zhí)行一條插入數(shù)據(jù)的操作:
insert into company(id,name,sharding_id) values(1,'leader us',10000);
然后類似執(zhí)行explain命令查看insert命令的執(zhí)行狀態(tài):
explain insert into company(id,name,sharding_id) values(1,'leader us',10000);
正常情況下我們會看到如下結(jié)果:
+-----------+----------------------------------------------------------------------+ | DATA_NODE | SQL | +-----------+----------------------------------------------------------------------+ | dn1 | insert into company(id,name,sharding_id) values(1,'leader us',10000) | | dn2 | insert into company(id,name,sharding_id) values(1,'leader us',10000) | | dn3 | insert into company(id,name,sharding_id) values(1,'leader us',10000) | +-----------+----------------------------------------------------------------------+ rows in set
之后我們直接登錄到mysql服務(wù)器分別查看db1、db2、db3三個數(shù)據(jù)庫,可以看到數(shù)據(jù)庫中都創(chuàng)建了名為company的數(shù)據(jù)表,同時表中都插入了名為leader us的數(shù)據(jù)。
5.5、水平分表測試
如5.4中的操作。我們在navicat的命令列窗口中執(zhí)行如下命令創(chuàng)建travelrecord表:
create table travelrecord(id int not null primary key,name varchar(100));
之后使用explain查看:
explain create table travelrecord(id int not null primary key,name varchar(100));
結(jié)果如下:
+-----------+--------------------------------------------------------------------------+ | DATA_NODE | SQL | +-----------+--------------------------------------------------------------------------+ | dn1 | create table travelrecord(id int not null primary key,name varchar(100)) | | dn2 | create table travelrecord(id int not null primary key,name varchar(100)) | | dn3 | create table travelrecord(id int not null primary key,name varchar(100)) | +-----------+--------------------------------------------------------------------------+ rows in set
然后執(zhí)行如下命令插入一條數(shù)據(jù):
insert into travelrecord(id,name) values(1,'hp');
執(zhí)行explain查看執(zhí)行結(jié)果:
explain insert into travelrecord(id,name) values(1,'hp');
結(jié)果如下:
+-----------+--------------------------------------------------+ | DATA_NODE | SQL | +-----------+--------------------------------------------------+ | dn1 | insert into travelrecord(id,name) values(1,'hp') | +-----------+--------------------------------------------------+ row in set
可以登錄到數(shù)據(jù)庫分別查看,三個數(shù)據(jù)庫中都創(chuàng)建了travelrecord的數(shù)據(jù)表,但是僅db1(dn1對應(yīng)的數(shù)據(jù)庫)中插入了數(shù)據(jù)。
- mysql mycat 中間件安裝與使用
- MyBatis利用MyCat實(shí)現(xiàn)多租戶的簡單思路分享
- 基于mysql+mycat搭建穩(wěn)定高可用集群負(fù)載均衡主備復(fù)制讀寫分離操作
- 利用mycat實(shí)現(xiàn)mysql數(shù)據(jù)庫讀寫分離的示例
- 數(shù)據(jù)庫中間件MyCat的介紹
- SpringBoot整合MyCat實(shí)現(xiàn)讀寫分離的方法
- 簡單了解mysql mycat 中間件
- Linux如何使用 MyCat 實(shí)現(xiàn) MySQL 主從讀寫分離
- MyCat環(huán)境搭建詳細(xì)教程
- 高效數(shù)據(jù)流轉(zhuǎn):Mycat分庫分表與GreatSQL實(shí)時同步
相關(guān)文章
由拖庫攻擊談口令字段的加密策略(數(shù)據(jù)庫加密)
我不得不慘痛地寫在前面的是,這是一個安全崩盤的時代。過去一年,已經(jīng)證實(shí)的遭遇入侵、并導(dǎo)致關(guān)鍵數(shù)據(jù)被竊或者被泄露的公司,包括索尼、世嘉這樣的大型游戲設(shè)備廠商;包括花旗銀行這樣的金融機(jī)構(gòu),也包括了RSA這樣的安全廠商2012-01-01
如何利用分析函數(shù)改寫范圍判斷自關(guān)聯(lián)查詢詳解
這篇文章主要給大家介紹了關(guān)于如何利用分析函數(shù)改寫范圍判斷自關(guān)聯(lián)查詢的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用sql具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-10-10
數(shù)據(jù)庫中row_number()?分組排序函數(shù)的具體使用
row_number()是一個強(qiáng)大的SQL窗口函數(shù),它通過partitionby和orderby子句實(shí)現(xiàn)分組和排序,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-11-11
SQL服務(wù)器面臨的危險和補(bǔ)救.讀[十種方法]后感.
SQL服務(wù)器面臨的危險. 危險:沒有防火墻保護(hù),暴露在公網(wǎng)中. 后果:SQL蠕蟲感染和黑客進(jìn)行拒絕服務(wù)攻擊、緩存溢出、SQL盲注和其它攻擊. 補(bǔ)救:安裝一款防火墻,即使經(jīng)費(fèi)有限,網(wǎng)上也有大把的免費(fèi)產(chǎn)品.2008-05-05
最新Navicat?16??Mac版安裝永久激活教程(親測有效)
這篇文章主要介紹了最新Navicat?16??Mac版安裝永久激活教程(親測有效),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對Navicat?16?永久激活教程感興趣的朋友一起看看吧2022-08-08
GaussDB數(shù)據(jù)庫使用COPY命令導(dǎo)入導(dǎo)出數(shù)據(jù)的場景分析
使用COPY命令可以方便地導(dǎo)入數(shù)據(jù)到GaussDB,GaussDB還提供了其他數(shù)據(jù)導(dǎo)入工具和功能,如使用GDS導(dǎo)入數(shù)據(jù)、使用INSERT多行插入、使用gsql元命令導(dǎo)入數(shù)據(jù)、ETL工具集成等,以滿足不同場景下的數(shù)據(jù)導(dǎo)入需求,對GaussDB COPY命令相關(guān)知識感興趣的朋友一起看看吧2024-01-01

