下載mycat,解壓後操做前端
http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
啓動mycat 執行bin目錄下指令java
./bin/mycat start
查看有哪些命令能夠執行mysql
../bin/mycat --help
Usage: ../bin/mycat { console | start | stop | restart | status | dump }
鏈接mycatlinux
mysql -uroot -123456 -h192.168.225.129 -P8066
查看docker ipsql
docker inspect master1 |grep IPAddress
Mysql命令 查看數據庫docker
mysql> show databases;
Mysql命令查看數據庫庫表數據庫
mysql> use TESTDB; mysql> show tables;
Mycat的端口緩存
8066 相似於mysql 3306端口(客戶端端口) 9066 Mycat 管理端口
是Mycat最重要的配置文件之一。主要管理Mycat邏輯庫、邏輯表、表、分片規則、Datasource。負載均衡
checkSQLschema分佈式
False 過濾schema定義。
select * from testdb.company => select * from company;
True 不過濾schema定義。有可能報錯。
sqlMaxLimit
Limit 自動加入limit,會影響最後返回條數。例如:select * from company。
mycat中的表,能夠和實體有具體映射關係,也能夠沒有具體映射關係(若是沒有映射關係會報錯)。
dataNode
把相應的表存到對應的DB中。
rule
分片規則。對應rule.xml中的規則。
ruleRequired
指定該屬性的表是否須要分片規則。
True 必須制定。若是沒有制定,就會報錯。
primaryKey
若是使用非主鍵進行分片,那麼Mycat會緩存主鍵和具體dataNode的信息,若是下次再使用非主鍵進行查詢的時候,就不用廣播全部dn。
autoIncrement
Mycat根據last_insert_id()返回結果。這個須要mysql主鍵設置配合。
type
邏輯表的類型。普通表和全局表。
needAddLimit
是否自動在每一條SQL語句後面加上limit限制。
balance 負載均衡配置
0 表明不開啓讀寫分離,全部的讀操做都發送到writeHost上。
1 writeHost和readHost都要參與select語句的負載均衡。
雙主雙從模式 M1->S1, M2->S2, M1和M2互爲主備。M2/S1/S2都要參與select語句的負載均衡。
2 全部讀操做都隨機分配給writeHost/readHost
3 全部的讀操做隨機分發到writeHost下面的readHost上執行。
writeType
0 全部的寫操做都分發到第一個writeHost。若是第二個掛了,分發到第二個。
1 全部的寫操做都要隨機分發到全部配置的writeHost上。1.5之後不推薦。
dbType
支持多種db類型。
switchType
-1 表明不自動切換
1 默認值,自動切換。
2 基於Mysql主從同步的狀態決定是否切換
show slave status;
3 基於MySQL Galera Cluster切換機制。
show status like ‘wsrep%’;
主要用於管理Mycat的用戶名,權限,黑白名單等等設置。這個文件主要和Mycat Server運行環境有關。
System標籤
屬性 |
說明 |
備註 |
useSqlStat |
開啓實時統計 |
1爲開啓,0爲關閉 |
useGlobleTableCheck |
全局表一致性檢測 |
1爲開啓,0爲關閉 |
sequnceHandlerType |
Mycat全局ID類型 |
0本地文件方式 |
useCompression |
mysql壓縮協議 |
1爲開啓,0爲不開啓 |
fakeMySQLVersion |
假裝的MySQL版本號 |
|
processorBufferChunk |
每次分配Socket Direct Buffer大小 |
默認4096字節 |
processors |
系統可用線程數 |
默認Runtime.getRuntime().availableProcessors()返回值 |
processorExecutor |
NIOProcessor共享businessExecutor線程池大小 |
|
processorBufferPoolType |
每次分配Socket Direct Buffer大小 |
默認是4096個字節 |
maxStringLiteralLength |
sql解析時最大文本長度 |
默認是65535(即64K) |
backSocketNoDelay |
TCP鏈接相關屬性 |
默認值1 |
frontSocketNoDelay |
TCP鏈接相關屬性 |
默認值1 |
serverPort |
指定服務端口 |
默認8066 |
managerPort |
制定管理端口 |
默認9066 |
idleTimeout |
鏈接空閒時間 |
默認30分鐘,單位毫秒 |
bindIp |
Mycat服務監聽的IP地址 |
|
frontWriteQueueSize |
前端鏈接寫隊列長度 |
爲了讓用戶知道是否隊列過長(SQL結果集返回太多)。當超過指定閥值後,會產生一個告警日誌 |
handleDistributedTransactions |
分佈式事務開關 |
0不過濾分佈式事務 |
useOffHeapForMerge |
是否讓Mycat開啓非堆內存 |
1 開啓,0關閉 |
memoryPageSize |
內存分頁大小 |
|
useStreamOutput |
是否使用流輸出 |
|
systemReserveMemorySize |
系統保留內存大小 |
|
useZKSwitch |
是否採用zookeeper協調切換 |
true/false |
Privileges標籤
控制DML:insert update select delete
單獨給select權限:0010
單獨給insert權限:1000
Firewall標籤
定義訪問控制策略:如白名單/黑名單
User標籤
定義可訪問mycat的用戶名稱/密碼/是否只讀
tableRule標籤
定義table分片策略
rule標籤
策略定義標籤
columns
對應的分片字段
algorithm標籤
tableRule分片策略對應的function名稱
function標籤
定義分片函數