前篇:Linux CentOS7系統建置MySQL資料庫主從同步
按照前篇完成MySQL集群後
如果正式使用,就需要逐一對不同功能配置的Master主機一一獨立配置,造成管理上的困擾
MyCAT是一個統整MySQL集群的工具
作為使用者與MySQL複數主機間的橋樑,基本可以讓整個集群當作一個MySQL伺服器使用
只要在MyCAT中設置好規則即可,相當方便
一.設置環境
首先update、upgeade更新系統,以下安裝包皆置於 /opt/ 資料夾
主機名 | IP | Port |
MyCAT | 192.168.1.24 | 8066 |
另外,MyCAT是用JAVA建立的,主機需配置JAVA環境
這裡MyCAT採用的版本是1.6.7.1
二.在MySQL建立MyCAT使用的帳戶
MyCAT對MySQL的控制,是需要給予擁有權限的帳戶
已經完成MySQL主從配置後,只要在Master主機建立帳戶即可,Slave主機會同步建立
mysql> create user 'mycat'@'192.168.1.24' identified with mysql_native_password by 'Mycat.123456';
mysql> grant all privileges on *.* 'mycat'@'192.168.1.24';
三.搭建MyCAT伺服器
# wget https://dl.mycat.io/1.6.7.1-release-20190627191042-linux.tar.gz
解壓縮後,編輯/etc/profile
# vi /etc/profile
在JAVA環境配置中新增
export MYCAT_HOME=/opt/mycat
export PATH=$MYCAT_HOME/bin:$PATH
存檔退出
啟動測試
# /opt/mycat/bin/mycat start
可使用已下指令檢查是否啟動成功
# /opt/mycat/bin/mycat status
# jps
四.MyCAT文件配置
在/opt/mycat/conf下,主要會使用到三個配置文件
server.xml、rule.xml、schema.xml
以下會介紹主要使用到的片段
1.server.xml
用於面對外部連線的配置檔案,IP白名單、使用者帳戶以及用戶可使用的庫、權限,都是在這裡統一設定
防火牆白名單,經由允許連接的IP對應可用的使用者進行限制
如果不需要的話整段註解即可
使用<user>標籤建立使用者,依下為
password 為密碼
schemas 為該使用者可用的邏輯庫,複數以逗號區隔
readOnly 為設置該用戶僅讀取權限
截圖中間註解的部分,則為邏輯庫、邏輯表的個別新增、讀取、更新、刪除權限,以0和1表示關閉/開啟
2.rule.xml
分庫的規則,主要需要注意的是分庫的數量
預設值為2,需依照分庫實際數量設置
3.schema.xml
配置邏輯庫、邏輯表,對應真實資料庫數據
主要有三區塊<schema>、<dataNode>、<dataHost>
<schema>標籤用於建立邏輯庫,name即為在MyCat中會看到的資料庫名稱
注意sqlMaxLimit參數,使用select語句時如果沒有設置查詢列數,會自動加入
其下包含<table>標籤建立邏輯表
參數包含邏輯表名name、資料庫節點dataNode、分庫規則rule
邏輯表名可以自訂,與實際資料表名不同沒有關係,資料庫節點節點則需對應<dataHost>設置的名稱
需要注意資料庫節點若有複數,就需要配置分庫規則,如果只有使用到單一節點就不需要設置規則
<dataNode>標籤用於配置資料庫節點
參數包含節點名稱name、實體主機dataHost、實體資料庫database
節點名稱一樣可以自訂,實體主機對應<dataHost>設置的名稱,實體資料庫則是在對應主機中真實存在的資料庫
<dataHost>標籤用於實體主機的讀寫配置,以及設定登入帳戶
主要包含三個標籤,<heartbest>、<writeHost>、<readHost>
<heartbest>是確認主機是否存活的方式,這裡是用select user()指令
<writeHost>是寫入主機,其下包含<readHost>讀取主機,這樣分隔即可做到讀寫分離
如果沒包含<readHost>的話,便是讀寫都在同一主機
五.啟動並使用MyCAT
關於MyCAT的操作指令,都於mycat的bin資料夾下,可以使用以下指令啟動、停止、重啟
# mycat/bin/mycat start 、 # mycat/bin/mycat start 、 # mycat/bin/mycat restart
使用以下指令查詢是否啟動成功
# mycat/bin/mycat status
接著使用有安裝MySQL的設備,輸入以下指令登入MyCAT
# mysql -ucat -p -h192.168.1.24 -P8066 --default-auth=mysql_native_password
--default-auth=mysql_native_password
是採用MySQL舊版密碼格式,如果此MySQL設備是8.0版本以上,登入MyCAT會一直出現密碼錯誤