mycat是一个基于JVM的mysql读写分离的中间件,实现对mysql的读写分离。用前先确定机器上装有JDK。
1.下载安装
2.配置文件 schema.xml修改
3.配置文件 server.xml修改
4.启动
5.JAVA程序中application.properties配置文件修改
1.下载安装
http://www.mycat.org.cn/ 下载
解压到安装目录下
2.配置文件 schema.xml修改
配置文件目录:D:\Environment\mysql\mycat\mycat\conf
此配置文件功能:
1.描述哪些是主节点,哪些是从节点。
2.虚拟库与真实库的映射的。
此处为一主一从
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<!--定义MyCat的逻辑库-->
<!--schema name: 逻辑库名称可以任取-->
<!--checkSQLschema:是否校验语法,不校验-->
<!--sqlMaxLimit:语法最大长度为100个字符-->
<!--dataNode: 真实数据节点-->
<!--一个schema代表映射了一个逻辑库-->
<schema name="LogicDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1">
</schema>
<!-- 定义MyCat 数据节点 name:名字必须和dataNode值一致-->
<!--dataNode: 与schema 中的dataNode保持一致-->
<!--dataHost: 真实主机 192.168.42.128-->
<!--database: 真实的库 scada -->
<!--dataNode: 真实的库名称-->
<dataNode name="dn1" dataHost="localhost1" database="db1" />
<!--定义数据主机 name: 必须与dataHost 保持一致-->
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
writeType="0" dbType="mysql" dbDriver="native" switchType="-1" slaveThreshold="100">
<!--心跳 检测,判断谁是否宕机-->
<heartbeat>select user()</heartbeat>
<!-- 写节点 -->
<!-- host 名字随便写 -->
<!-- url 为master的ip -->
<writeHost host="master" url="192.168.42.128:3306" user="root" password="123@123">
<!-- 从节点 -->
<readHost host="slave1" url="127.0.0.1:33057" user="root" password="123@123"/>
</writeHost>
</dataHost>
</mycat:schema>
3.配置文件 server.xml修改
用于配置server端信息。
<?xml version="1.0" encoding="UTF-8"?>
<!-- - - Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License. - You
may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0
- - Unless required by applicable law or agreed to in writing, software -
distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the
License for the specific language governing permissions and - limitations
under the License. -->
<!DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://io.mycat/">
<!--system 是对系统进行配置的 defaultSqlParser -->
<!--defaultSqlParser 默认的sql解析方式 用的是阿里巴巴的解析方式 drui连接池-->
<!--用什么编码解析SQL语句呢 utf8--->
<system>
<property name="defaultSqlParser">druidparser</property>
<property name="charset">utf8</property>
</system>
<!--配置用户信息-->
<!-- name: 登录mycat的用户名 password:密码 -->
<user name="root" >
<property name="password">root</property>
<!--可以操作的逻辑库-->
<property name="schemas">LogicDB</property>
</user >
</mycat:server>
4.启动
#1.进入bin 目录,执行mycat
cd D:\Environment\mysql\mycat\mycat\bin
./mycat console
5.JAVA配置文件
jdbc设置长上面配置的逻辑库 LogicDB
spring.datasource.url=jdbc:mysql://192.168.42.128:8066/LogicDB?characterEncoding=UTF-8