日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Mycat快速入门

發(fā)布時間:2025/3/8 编程问答 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Mycat快速入门 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.Mycat介紹

Mycat 是一個開源的分布式數(shù)據(jù)庫系統(tǒng),是一個實現(xiàn)了 MySQL 協(xié)議的的Server,前端用戶可以把它看作是一個數(shù)據(jù)庫代理,用 MySQL 客戶端工具和命令行訪問,而其后端可以用MySQL 原生(Native)協(xié)議與多個 MySQL 服務器通信,也可以用 JDBC 協(xié)議與大多數(shù)主流數(shù)據(jù)庫服務器通信,其核心功能是分表分庫,即將一個大表水平分割為 N 個小表,存儲在后端 MySQL 服務器里或者其他數(shù)據(jù)庫里。

2.Mycat基礎環(huán)境搭建

首先需要下載Mycat必需的一些環(huán)境:
jdk下載(1.7以上) –mycat是基于java開發(fā)的,需要java編譯環(huán)境
mysql
mycat


1) JDK 下載
http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
注:必須 JDK7 或更高版本.
2) MySQL 下載
http://dev.mysql.com/downloads/mysql/5.5.html#downloads
注:MyCAT 支持多種數(shù)據(jù)庫接入,如:MySQL、SQLServer、Oracle、MongoDB 等,推薦使用
MySQL 做集群。
3) MyCAT 項目主頁
https://github.com/MyCATApache/
注:MyCAT 相關源碼、文檔都可以在此地址下進行下載

3.Mycat配置

為了快速跑起一個Mycat demo,我們先在本地數(shù)據(jù)庫里面建立test1和test2數(shù)據(jù)庫,創(chuàng)建一個名為opt的表,字段為id(int)及name(varchar)


Mycat的主要配置文件在其conf目錄下面,分別是server.xml、schema.xml和rule.xml,為快速啟動mycat,我們按照配置的順序和主要配置項說明。
1)server.xml
這里主要配置mycat的用戶和權限信息,這里的賬戶用于后面連接mycat使用。
快速入門可以簡單這樣配置:
schemas是后面schema.xml里面配置的DB,例如:我這里配置了一個用戶名為user,密碼為666666的賬戶,默認只能訪問test的DB


<user name="user">
<property name="password">666666</property>
<property name="schemas">test</property>
</user>

2)schema.xml
這里主要配置數(shù)據(jù)庫信息,一個schema就是一個邏輯庫,可以理解為Mycat管理的一個數(shù)據(jù)庫DB(實際上不存在,是一個虛擬的概念)name屬性和server.xml里面對應。
table是Mycat的邏輯表,這里我們配置一個名為opt的邏輯表
dataNode屬性是將其綁定在真實數(shù)據(jù)庫中的數(shù)據(jù)節(jié)點中,這里我們配置了兩個dataNode,分別是test1數(shù)據(jù)庫和test2數(shù)據(jù)庫,注意,這兩個數(shù)據(jù)庫的真實表名需和table的name一致
dataHost屬性就是我們熟悉的mysql連接,這里我們都用本地作為一臺服務器,也可以配置不同服務器上的不同mysql,這里還可以配置讀寫分離,我們先不考慮。
rule屬性就是分片規(guī)則,這里用的是名稱,需在下一步的rule.xml里面定義好

<schema name="test" checkSQLschema="false" sqlMaxLimit="100">
<!-- 分片表配置 -->
<table name="opt" dataNode="dn$1-2" rule="rule1" />
</schema>
<dataNode name="dn1" dataHost="localhost1" database="test1" />
<dataNode name="dn2" dataHost="localhost1" database="test2" />
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostS1" url="localhost:3306" user="root"
password="666666" />
</dataHost>

3)rule.xml
這里我們主要配置的是分片規(guī)則,Mycat支持很多分片規(guī)則,我們使用的是一個較為簡單的取模規(guī)則,即根據(jù)columns標簽里面的id屬性來取模,count屬性定義為數(shù)據(jù)節(jié)點的個數(shù)。

<tableRule name="rule1">
<rule>
<columns>id</columns>
<algorithm>mod-long</algorithm>
</rule>
</tableRule>
<function name="mod-long" class="io.mycat.route.function.PartitionByMod">
<!-- how many data nodes -->
<property name="count">2</property>
</function>

4.Mycat啟動

1)window啟動:
window上啟動mycat需要用cmd命令到mycat的bin目錄下面,執(zhí)行startup_nowrap.bat命令成功即可
2)linux啟動:
同樣,到bin目錄下面,執(zhí)行startup_nowrap.sh命令成功即可
當看到如下圖顯示的啟動成功標識說明mycat啟動成功

注:若出現(xiàn)錯誤,可在其logs目錄下面查看錯誤信息,一般為配置錯誤

5.Mycat使用

啟動mycat成功后,我們通過本地sql連接工具,如Navicat建立到mycat的鏈接,其默認端口是8066,如果連接成功,可通過命令行執(zhí)行一條插入語句的sql,如
INSERT INTO opt(id,name) VALUES(1,”3434”)查看是否插入到指定分庫的表里面,若成功,說明Mycat可以正常使用

如圖所示:插入的數(shù)據(jù)分布到指定的庫里面

注:mycat的插入語句必須有分片規(guī)則的字段,否則無法判定是插入哪個數(shù)據(jù)庫。

6.Mycat更多細節(jié)

以上只是簡單介紹了如何快速啟動一個Mycat的demo,關于更詳細的配置信息及更為復雜的分片規(guī)則和sql,可以參考Mycat的官方介紹文檔
http://www.mycat.org.cn/document/Mycat_V1.6.0.pdf

2018-01-04更新

Tip:上面用Navicat連接的時候發(fā)現(xiàn)一個問題,新建連接的時候,填寫用戶名和密碼的時候,用戶名字上文中Server.xml中

<user name="user">

標簽的name屬性值即user,密碼是

<property name="password">666666</property>

這個標簽中的“666666”,其實一開始填寫錯誤了,將用戶名填寫成錯誤,會導致報 1045 "can’t Access...."的錯誤!

總結

以上是生活随笔為你收集整理的Mycat快速入门的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。