MyCat实现MySQL读写分离
一、官网下载安装包
官网下载安装包http://www.mycat.io/选择安装版本
或使用命令下载
[root@centos ~]# wget http://dl.mycat.io/1.6.7.4/Mycat-server-1.6.7.4-test-20191022170541-linux.tar.gz
下载完成上传到Linux
二、解压tar包
[root@centos ~]# tar -xzf Mycat-server-1.6.7.4-test-20191022170541-linux.tar.gz -C /usr/soft/mucat
三、配置mycat环境变量
配置/etc/profile或/root/.bashrc
配置完成执行source /etc/profile或source /root/.bashrc
四、配置mycat中conf下的配置schema.xml
[root@centos mycat]# vim conf/schema.xml
<!-- 定义MyCat的逻辑库 -->
<schema name="test_schema(mycat逻辑数据库名)" checkSQLschema="false" sqlMaxLimit="100" dataNode="testNode"></schema>
<!-- 定义MyCat的数据节点 -->
<dataNode name="testNode" dataHost="dtHost" database="test" />
<dataHost name="dtHost" maxCon="1000" minCon="10" balance="1"
writeType="0" dbType="mysql" dbDriver="native" switchType="-1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<!--写节点-->
<writeHost host="hostM1" url="192.168.28.128:3306" user="root"
password="root">
<!--从节点/读节点-->
<readHost host="hostS1" url="192.168.28.129:3306" user="root" password="root" />
<readHost host="hostS2" url="192.168.28.130:3306" user="root" password="root" />
</writeHost>
</dataHost>
mycat逻辑数据库名
,访问mycat时使用的数据库名,用于映射真实数据库
checkSQLschema
:是否检查sql语句约束
sqlMaxLimit
:最大sql语句
dataNode
:数据节点 与标签绑定
database
:真实数据库名称
dataHost
:数据节点,和<dataHost name=“dtHost” maxCon=“1000” minCon=“10” balance="1"标签绑定
五、配置登陆mycat的权限server.xml
<system>
<!-- 这里配置的都是一些系统属性-->
<property name="defaultSqlParser">druidparser</property><!--sql解析,不用改-->
<property name="charset">utf8mb4</property><!--编码格式-->
</system>
<user name="root"><!--访问mycat用户名-->
<property name="password">root</property><!--访问mycat密码-->
<property name="schemas">test_schema</property><!--访问mycat逻辑库名,和schema.xml中的逻辑库名对应-->
</user>
六、启动mycat
配置mycat超时时间
修改conf/wrapper.conf配置,修改里面的超时时间,比如设为2小时。
具体配置参数:wrapper.startup.timeout=7200 #2小时
[root@centos ~]# mycat console
七、查看日志
[root@centos ~]# tail -f ../logs/mycat.log
mybatis链接参数
mybatis.datasource.type: org.apache.commons.dbcp.BasicDataSource
mybatis.datasource. driver-class-name: com.mysql.jdbc.Driver
mybatis.datasource.url: jdbc:mysql://mycat的ip:8066/test_schema
mybatis.datasource. username: root
mybatis.datasource.password: root
测试可以修改从节点数据测试