MySQL主從複製不在敘述,如下是 mycat 的部署過程:
從GitHub上下載mycat ,此本版是:Mycat-server-1.6.7.5
1· 解壓 下載好的 tar 包:node
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">;mysql
<schema name="adshield" checkSQLschema="false" sqlMaxLimit="100" dataNode="node1"/>
<schema name="adshield_res_video" checkSQLschema="false" sqlMaxLimit="100" dataNode="node2"/>
<schema name="database1" checkSQLschema="false" sqlMaxLimit="100" dataNode="node3"/>
<schema name="konga" checkSQLschema="false" sqlMaxLimit="100" dataNode="node4"/>
<schema name="nacos" checkSQLschema="false" sqlMaxLimit="100" dataNode="node5"/>
<schema name="oauth2" checkSQLschema="false" sqlMaxLimit="100" dataNode="node6"/>
<schema name="videodata" checkSQLschema="false" sqlMaxLimit="100" dataNode="node7"/>
<schema name="videodata_dev" checkSQLschema="false" sqlMaxLimit="100" dataNode="node8"/> //dataNode 這裏的值須要和下面的值對應
<schema name="viip_qa" checkSQLschema="false" sqlMaxLimit="100" dataNode="node9"/>
<schema name="test-lyh" checkSQLschema="false" sqlMaxLimit="100" dataNode="node10"/> // schema name 是mycat 的邏輯名稱,配置時最好和真實庫是同樣的,這樣更直觀。
<dataNode name="node1" dataHost="192.168.64.12" database="adshield"/> // dataNode name 是你真實數據庫的名稱
<dataNode name="node2" dataHost="192.168.64.12" database="adshield_res_video"/>
<dataNode name="node3" dataHost="192.168.64.12" database="database1"/>
<dataNode name="node4" dataHost="192.168.64.12" database="konga"/>
<dataNode name="node5" dataHost="192.168.64.12" database="nacos"/>
<dataNode name="node6" dataHost="192.168.64.12" database="oauth2"/>
<dataNode name="node7" dataHost="192.168.64.12" database="videodata"/>
<dataNode name="node8" dataHost="192.168.64.12" database="videodata_dev"/>
<dataNode name="node9" dataHost="192.168.64.12" database="viip_qa"/>
<dataNode name="node10" dataHost="192.168.64.12" database="test-lyh"/>linux
<dataHost name="192.168.64.12" maxCon="1000" minCon="50" balance="1" writeType="1" dbType="mysql" dbDriver="native" switchType="0" slaveThreshold="100"> // balance 值爲 1 表示讀寫分離 還能夠表示 0、一、二、3 具體參考官網解釋
<heartbeat>select user()</heartbeat>
<writeHost host="192.168.64.12" url="192.168.64.12:3326" user="test" password="test123">
<readHost host="192.168.64.14" url="192.168.64.14:3306" user="test" password="test123"/> //指定主、從的地址、用戶、密碼
</writeHost>
</dataHost>sql
</mycat:schema>數據庫
<user name="root" defaultAccount="true"> //鏈接mycat的用戶名
<property name="password">City@#$123</property> //鏈接mycat的密碼
<property name="schemas">adshield,adshield_order,adshield_taxi,mysql,nacos,pb_cms_base,performance_schema,sys,test2,information_schema</property> //mycat 須要鏈接的庫,這裏須要和上個配置文件<schema.xml> 中 schema name 的值相對應。下面參數的配置都同樣。
<property name="defaultSchema">adshield,adshield_order,adshield_taxi,mysql,nacos,pb_cms_base,performance_schema,sys,test2,information_schema</property>vim
export MYCAT_HOME=/usr/local/mycat
export PATH=$MYCAT_HOME/bin:$PATHide
MyCAT Server startup successfully. see logs in logs/mycat.log 日誌產出 說明啓動成功url
因公司需求,須要將主庫和mycat 的端口互換,這樣能夠避免程序再次修改鏈接數據庫的操做,因此若是有需求,請修改如下配置文件:日誌
<property name="serverPort">3306</property> <property name="managerPort">9066</property> //須要將他取消註釋,修改端口,重啓mycatorm