mycat配置读写分离

现有MYSQL架构:

MHA1                  192.168.1.20
MHA2                  192.168.1.30
MHA3                  192.168.1.40
SLAVE                 192.168.1.50
MANAGER          192.168.1.60

因现有架构前端程序都是利用脚本轮询读写来实现人肉分离,没有健康检查,造成了网站时时有卡顿,因此需要利用mycat来实现读写分离,且带有有健康检查。

安装包:Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz

一、新服务器192.168.1.70配置mycat
1.下载Mycat-server-1.6-RELEASE
2.安装mycat

[root@mycat ~]# tar -xf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
[root@mycat mycat]# cp -r ~/mycat/ /usr/local/mycat

3.修改登录mycat的用户

[root@mycat mycat]# vim /usr/local/mycat/conf/server.xml

<user name="root"&gt;
<property name="password"&gt;123456&lt;/property&gt;
<property name="schemas"&gt;mydb&lt;/property&gt;
</user&gt;
<user name="user"&gt;
<property name="password"&gt;user&lt;/property&gt;
<property name="schemas"&gt;mydb&lt;/property&gt;
<property name="readOnly"&gt;true&lt;/property&gt;
</user&gt;

4.修改mycat配置

[root@mycat mycat]# vim /usr/local/mycat/conf/schema.xml

<?xml version="1.0"?&gt;
<!DOCTYPE mycat:schema SYSTEM "schema.dtd"&gt;
<mycat:schema xmlns:mycat="http://io.mycat/"&gt;
<schema name="mydb" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"&gt;
</schema&gt;
<!-- &lt;dataNode name="dn1$0-743" dataHost="localhost1" database="db$0-743"
/&gt; --&gt;
<dataNode name="dn1" dataHost="localhost1" database="mydb" /&gt;
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="3"
writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100"&gt;
<heartbeat&gt;select user()&lt;/heartbeat&gt;
<!-- can have multi write hosts --&gt;
<writeHost host="hostM1" url="192.168.1.100:3306" user="root"
password="123456"&gt;
<!-- can have multi read hosts --&gt;
<readHost host="node1" url="192.168.1.30:3306" user="read" password="123456" /&gt;
<readHost host="node2" url="192.168.1.40:3306" user="read" password="123456" /&gt;
<readHost host="node3" url="192.168.1.50:3306" user="read" password="123456" /&gt;
</writeHost&gt;
</dataHost&gt;
</mycat:schema&gt;

5.安装java环境

[root@mycat mycat]# yum -y install java-1.8.0-openjdk

6.主mysql授权select用户

mysql > grant select on *.* to read@'%' identified by '123456';

7.开启mycat

[root@mycat ~]# /usr/local/mycat/bin/mycat start

二、测试读写分离

[root@mha1 ~]# for i in {1..5};do mysql -uroot -p123456 -P8066 -h192.168.1.80 -e "select @@hostname"; done
+------------+
| @@hostname |
+------------+
| slave |
+------------+
+------------+
| @@hostname |
+------------+
| mha3 |
+------------+
+------------+
| @@hostname |
+------------+
| mha2 |
+------------+
+------------+
| @@hostname |
+------------+
| mha2 |
+------------+
+------------+
| @@hostname |
+------------+
| slave |
+------------+

猜你喜欢

转载自blog.51cto.com/13762620/2129803