一、读写分离
我这里的环境是mha(双主双从)+mycat
ip | 主机名 | 硬盘/G | 内存/G | cpu/块 |
192.168.86.10 | master01 | 20 | 2 | 2 |
192.168.86.20 | master02 | 20 | 2 | 2 |
192.168.86.30 | slave01 | 20 | 2 | 2 |
192.168.86.40 | slave02 | 20 | 2 | 2 |
192.168.86.100 | manager | 20 | 2 | 2 |
192.168.86.200 | mycat | 20 | 2 | 2 |
https://blog.youkuaiyun.com/unito/article/details/129239262?spm=1001.2014.3001.5502mha双主双从
1.在主服务器上创建库和表
2.下载epel源
[root@mycat ~]# yum install epel-release
3.下载openjdk1.8
[root@mycat ~]# yum list | grep openjdk
java-1.8.0-openjdk-devel.x86_64 1:1.8.0.362.b08-1.el7_9 updates
[root@mycat ~]# yum install -y java-1.8.0-openjdk-devel.x86_64
4.查看是否成功
5.下载mycat
http://dl.mycat.org.cn/1.6.6.1/Mycat-server-1.6.6.1-release-20181031195535-linux.tar.gz
下载后解包重定向到/usr/local下
6.设置环境变量
启动mycat并查看日志是否成功:mycat start;tailf /usr/local/mycat/logs/wrapper.log
7.登录到mycat查看
8.修改配置文件server.xml
server.xml
这里关于root用户 的账户密码暂时不用改
9.在主服务器上创建一个用户
10.修改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" dataNode="dn1"></schema>
<dataNode name="dn1" dataHost="localhost1" database="hellodb" />
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="host1" url="192.168.86.10:3306" user="root" password="123456">
<readHost host="host3" url="192.168.86.30:3306" user="root" password="123456"/></writeHost>
<writeHost host="host2" url="192.168.86.20:3306" user="root" password="123456">
<readHost host="host4" url="192.168.86.40:3306" user="root" password="123456"/>
</writeHost>
</dataHost>
</mycat:schema>
11.重启mycat并查看端口
12.在客户端上测试,可以不使用端口登录
13.测试读写分离
在所有服务器上开启日志
在master和slave分别实时查看数据
14.在mycat上插入数据和查看数据
插入数据的命令只在master中看到
查询的命令在slave主机中看到
二、分库分表
设置用户在server.xml
设置schema.xml
</schema>
<dataNode name="dn2" dataHost="kaka1" database="kaka" />
<dataNode name="dn3" dataHost="kaka2" database="kaka" /><dataHost name="kaka1" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="kaka1" url="192.168.86.10:3306" user="root" password="123456" />
</dataHost>
<dataHost name="kaka2" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="kaka2" url="192.168.86.20:3306" user="root" password="123456" />
</dataHost>
设置rule.xml
修改红框标注的部分
创建库
登录到mycat
插入数据
10两条数据
20两条数据