03、MySQL-------数据库中间件MyCat实现读写分离

目录

  • 八、数据库中间件MyCat实现读写分离
    • 1、克隆:
    • 2、配置分析:
      • 1、schema.xml
      • 2、启动mycat:
      • 3、关闭防火墙:
      • 4、代码测试:
        • 测试写入:
        • 测试读:
        • 强制读Master

八、数据库中间件MyCat实现读写分离

作用:进行读写分离

mycat是单独部署在一台服务器的

分析图:

03、MySQL-------数据库中间件MyCat实现读写分离_第1张图片

1、克隆:

拷贝一个虚拟机栈作为mycat的服务器,ip为:192.168.209.153

查看 java -version ,看jdk是否安装好

上传这个
03、MySQL-------数据库中间件MyCat实现读写分离_第2张图片

将mycat解压到指定目录下面

03、MySQL-------数据库中间件MyCat实现读写分离_第3张图片
查看

03、MySQL-------数据库中间件MyCat实现读写分离_第4张图片

2、配置分析:

schema.xml 等文件里面的属性都可以在这个官网查看,不懂的直接官网查就可以

mycat1的官网:https://www.yuque.com/ccazhw/tuacvk/gmbnwu

1、schema.xml

解释分析:

03、MySQL-------数据库中间件MyCat实现读写分离_第5张图片

03、MySQL-------数据库中间件MyCat实现读写分离_第6张图片

去掉注释:

把原本的配置文件给删除,把改好的这些复制进去

删除配置文件所有数据命令: :0, d 表示删除 0 到最后一行, d 表示删除0到最后一行, d表示删除0到最后一行,表示最后一行,d表示删除

03、MySQL-------数据库中间件MyCat实现读写分离_第7张图片

<?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="t_order" dataNode="dn01"/>
	</schema>
	<dataNode name="dn01" dataHost="dn01" database="ljh_test" />
	<dataHost name="dn01" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
		<heartbeat>select user()</heartbeat>
		<writeHost host="192.168.209.150" url="192.168.209.150:3306" user="root" password="123456">
			<readHost host="192.168.209.152" url="192.168.209.152:3306" user="root" password="123456" />
		</writeHost>
		<writeHost host="192.168.209.152" url="192.168.209.152:3316" user="root" password="123456" />
	</dataHost>
</mycat:schema>

拷贝老是不完整,开头的用手进行输入。

03、MySQL-------数据库中间件MyCat实现读写分离_第8张图片
03、MySQL-------数据库中间件MyCat实现读写分离_第9张图片

2、启动mycat:

启动mycat: /usr/local/mycat/bin/mycat start

查看mycat日志: tail -f -n 50 /usr/local/mycat/logs/wrapper.log

03、MySQL-------数据库中间件MyCat实现读写分离_第10张图片

3、关闭防火墙:

在这里插入图片描述

4、代码测试:

测试写入:

写一个MyCatUtil的类

03、MySQL-------数据库中间件MyCat实现读写分离_第11张图片

通过这个配置可以看出写入的主数据库是150服务器的数据库

03、MySQL-------数据库中间件MyCat实现读写分离_第12张图片

成功往主数据库插入数据,从数据库也正常同步数据

测试读:

读数据的话应该是从 从数据库 读取数据

03、MySQL-------数据库中间件MyCat实现读写分离_第13张图片

测试成功

强制读Master

如果我们想读主数据库的数据,应该这么操作

可以使用注解强制读操作走主库
/*#mycat:db_type=master*/ + 真实SQL

mycat在解析sql的时候发现该注解,就会去强制读主数据库

03、MySQL-------数据库中间件MyCat实现读写分离_第14张图片

用注解强制读主库成功,这个注解就是长这个样子的,属于mycat的注解类型。

你可能感兴趣的:(MySQL,数据库,mysql,中间件)