前提:mycat安裝前需先實現主從復制,主從復制不會的,請看 文章 。另外,配置前需關掉selinux。
一、此次測試環境總共有四台機:
mycat: 10.0.0.20 mysql_master: 10.0.0.21 mysql_slave: 10.0.0.22 測試機: 10.0.0.23
二、安裝mycat前,需先安裝jdk
1、 安裝jdk
1)安裝jdk
#下載jdk http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html #創建jdk保存目錄 $ sudo mkdir -p /usr/lib/jvm #解壓jdk $ sudo tar -zxvf jdk-8u131-linux-x64.tar.gz -C /usr/lib/jvm
2)設置jdk環境變量
添加環境變量 $ sudo vim /etc/profile 【 /etc/profile 】 export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_131 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATh=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH #使變量環境立刻生效 $ source /etc/profile
2、安裝mycat
#下載mycat http://dl.mycat.io/1.6-RELEASE/ #解壓mycat $ sudo tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local #設置mycat環境變量 $ sudo vim /etc/profile export MYCAT_HOME=/usr/local/mycat export PATH=${MYCAT_HOME}/bin:$PATH #使環境變量立刻生效 source /etc/profile #啟動mycat $ mycat start
三、配置mycat,主要修改schema.xml和server.xml兩個文件
1、 修改schema.xml文件:
<!—此處的name為mysql對應的數據庫,建議設置跟數據庫一樣的名稱--> <schema name="test001" checkSQLschema="false" sqlMaxLimit="100"> <!—此處的name為test001數據庫的表格,命名與數據庫的一致 --> <table name="tb_test" dataNode="test001Node" /> </schema> <!-- 此處的name需與上面table中的dataNode一致,dataHost可自定義,下來用得着,database為mysql數據庫 --> <dataNode name="test001Node" dataHost="dtHost" database="test001" /> <!-- 此處的name需與dataNode中的dataHost一致,balance=1為讀寫分離,其它值默認 --> <dataHost name="dtHost" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <!-- 此處默認 --> <heartbeat>select user()</heartbeat> <!-- 此處的url為主服務器的IP,端口默認,另外填寫連接mysql的正確用戶名和密碼 --> <writeHost host="hostM1" url="10.0.0.21:3306" user="root"password="redhat"> <!-- 此處的url為從服務器的IP,端口默認,另外填寫連接mysql的正確用戶名和密碼 --> <writeHost host="hostS1" url="10.0.0.22:3306" user="root"password="redhat" />
2、 配置server.xml
<!-- 此處的root和123456為連接mycat的用戶名與密碼,test001為數據庫,需與schema.xml中配置的數據庫一致 --> <user name="root"> <property name="password">123456</property> <property name="schemas">test001</property> </user> <!-- 此處的信息基本同上,但user用戶只有讀的權限--> <user name="user"> <property name="password">user</property> <property name="schemas">test001</property> <property name="readOnly">true</property> </user>
四、測試mycat
1、 在mysql主服務器添加數據庫
#進入數據庫 $ mysql -uroot -p #數據庫操作 mysql> create database test001; mysql> use test001; mysql> create table tb_test(id int(3),name varchar(11)); mysql> insert into tb_test values(1,’Lining’);
2、 進入mycat服務器,追蹤mycat 日志。
$ sudo tail -f /usr/local/mycat/logs/mycat.log
3、 在測試機操作。
# 在mycat服務器上登錄遠程數據庫 $ mysql -h10.0.0.20 -uroot -p123456 -P8066 #數據庫操作 mysql> user test001; mysql> insert into tb_test values(2,‘Zhaoxiong’);
詳情如下圖
五、添加mycat的開機啟動
#賦予rc.loca可執行權限 $ sudo chmod +x /etc/rc.d/rc.local #添加內容 $ sudo vim /etc/rc.d/rc.local /usr/local/mycat/bin/mycat start &
以上是讀寫分離的全部過程,只是皮毛而已,如何要深究,可以查看mycat官網的教程。