1、首先開啟服務器相關埠
firewall-cmd --permanent --add-port=9066/tcp
firewall-cmd --permanent --add-port=8066/tcp
重啟:
firewall-cmd --reload
2、安裝JDK
2.1、安裝方式一
2.1.1、使用yum安裝JDK
yum install -y java-1.8.0-openjdk.x86_64
2.2.2、查看安裝版本
java -version
2.2、安裝方式二
2.2.1、下載環境,JDK安裝包
下載地址

這里我下載的是Linux x64 Compressed Archive,可以根據自己的環境自行下載
2.2.2、在/usr/local/下創建java目錄
roomkdir java
chmod 777 java
2.2.3、使用ftp鏈接服務器并把下載的安裝包上傳至java目錄
2.2.4、進入到java目錄,解壓上傳檔案
tar -zxvf +需要解壓的包名
tar -zxvf jdk-16.0.2_linux-x64_bin.tar.gz
2.2.5、編輯組態檔,配置環境變數,vim /etc/profile進入編輯狀態,在打開的檔案最后面加上如下代碼:
JAVA_HOME=/usr/local/java/jdk-16.0.2
CLASSPATH=$JAVA_HOME/lib/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

2.2.6、重新加載組態檔,輸入:
source /etc/profile
2.2.7、最后一步,查看安裝情況
java -version

輸入:
javac
3、安裝Mycat
3.1、Mycat安裝方式一
3.1.1、下載地址
http://dl.mycat.org.cn/1.6-RELEASE/
http://www.mycat.org.cn/
http://dl.mycat.org.cn/1.6.6/
3.1.2、使用ftp上傳至服務器
3.1.3、配置與啟動
3.1.3.1、組態檔
組態檔為schema.xml
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
<table name="table1" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" />
</schema>
#表為三個表,分別在三個服務器中,a1、a2、a4分為為三個服務器中的三個資料庫
<dataNode name="dn1" dataHost="localhost1" database="a1" />
<dataNode name="dn2" dataHost="localhost1" database="a2" />
<dataNode name="dn3" dataHost="localhost1" database="a4" />
<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="hostM1" url="192.168.72.140:3306" user="root"
password="123456789aA!">
<!-- can have multi read hosts -->
<readHost host="hostS2" url="192.168.72.140:3306" user="root" password="" />
<readHost host="hostS2" url="192.168.72.141:3306" user="root" password="" />
</writeHost>
</dataHost>
</mycat:schema>
3.1.3.2、啟動Mycat
./mycat/bin/mycat
[root@mycat2 mycat]# ./mycat/bin/mycat
Usage: ./mycat/bin/mycat { console | start | stop | restart | status | dump }
#控制臺|啟動|停止|重啟|狀態|轉儲
#執行命令的方式
./mycat/bin/mycat +操作
#控制臺:
./mycat/bin/mycat console
#啟動:
./mycat/bin/mycat start
#停止:
./mycat/bin/mycat stop
#重啟:
./mycat/bin/mycat restart
#狀態:
./mycat/bin/mycat status
#轉儲:
./mycat/bin/mycat dump
3.2、服務器下載wget
wget http://dl.mycat.org.cn/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
3.3、解壓
tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
3.4、啟動
./mycat/bin/mycat
3.5、檔案配置與啟動方式可以參考手動上傳方式
4、Mycat配置實體
這里我準備了四個服務器,分分別為:
192.168.72.149 #Mycat服務器(Mycat默認的資料庫為8099,或者9066,需要打開這兩個埠)
192.168.72.143 #MySQL資料庫服務器(服務器中有a1資料庫,a1中有個table1資料表)
192.168.72.150 #MySQL資料庫服務器(服務器中有a1資料庫,a1中有個table1資料表)
192.168.72.151 #MySQL資料庫服務器(服務器中有a1資料庫,a1中有個table1資料表)
192.168.72.143資料庫中的資料為:

192.168.72.150資料庫中的資料為:

192.168.72.151資料庫中的資料為:

連接Mycat服務器:

Mycat服務器查詢的資料結果為:

查詢只能使用陳述句進行查詢,如下:

schema.xml檔案的配置:
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
<table name="table1" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" />
</schema>
<dataNode name="dn1" dataHost="localhost1" database="a1" />
<dataNode name="dn2" dataHost="localhost2" database="a1" />
<dataNode name="dn3" dataHost="localhost3" database="a1" />
<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="hostM1" url="192.168.72.143:3306" user="root"
password="aA123456.">
<!-- can have multi read hosts -->
<!-- <readHost host="hostS2" url="192.168.72.140:3306" user="root" password="" />
<readHost host="hostS2" url="192.168.72.141:3306" user="root" password="" /> -->
</writeHost>
</dataHost>
<dataHost name="localhost2" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM1" url="192.168.72.150:3306" user="root"
password="aA123456.">
</writeHost>
</dataHost>
<dataHost name="localhost3" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM1" url="192.168.72.151:3306" user="root"
password="aA123456.">
</writeHost>
</dataHost>
</mycat:schema>
也可配置為:
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
<table name="table1" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" />
</schema>
<dataNode name="dn1" dataHost="localhost1" database="a1" />
<dataNode name="dn2" dataHost="localhost1" database="a1" />
<dataNode name="dn3" dataHost="localhost1" database="a1" />
<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="hostM1" url="192.168.72.143:3306" user="root"
password="aA123456.">
<!-- can have multi read hosts -->
<!-- <readHost host="hostS2" url="192.168.72.140:3306" user="root" password="" />
<readHost host="hostS2" url="192.168.72.141:3306" user="root" password="" /> -->
</writeHost>
<writeHost host="hostM1" url="192.168.72.150:3306" user="root"
password="aA123456.">
</writeHost>
<writeHost host="hostM1" url="192.168.72.151:3306" user="root"
password="aA123456.">
</writeHost>
</dataHost>
</mycat:schema>
登錄Mycat:
mysql -h127.0.0.1 -uroot -p123456 -P8066
-h:為本機地址,也可以是你的IP地址
-u:Mycat中配置的用戶名
-p:Mycat中配置的密碼
-P:埠
注意:如果需要在命令端登錄,需要安裝MySQL
資料:
Mycat下載地址
JDK下載地址
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/353612.html
標籤:其他
上一篇:2021-11-08
