Centos安装数据库读写分离中间件Mycat

Mycat主要有两个功能,分库分表以及读写分离。在这里主要对读写分离功能进行介绍。

一、安装包下载

1、Mycat安装包下载
官网地址
或者执行命令

wget http://dl.mycat.io/1.6.7.4/Mycat-server-1.6.7.4-test-20191113141017-linux.tar.gz

2、JDK1.8安装包下载
官网地址

需要登录Oracle网站才可下载

二、安装JDK环境

1、将下载好的 JDK进行解压。

 tar xf jdk-8u111-linux-x64.tar.gz -C /usr/local/

2、进入 /usr/local/,对解压后的目录建立软连接。

cd /usr/loca/
ln -sv jdk1.8.0_111/ java

3、编辑 /ect/profile 文件,添加 jdk环境变量并重新加载。

vim /etc/profile
##
export JAVA_HOME=/usr/local/java
export JRE_HOME=/usr/local/java/jre
export CLASSPATH=/usr/local/java/lib:/jre/lib
export PATH=$PATH:$JAVA_HOME:$JRE_HOME:$CLASSPATH
:wq
source /etc/profile

4、查看jdk版本

java -version

三、安装Mycat

mycat安装非常简单,解压安装包后就能启动。主要是对配置文件的调整。本篇博文只是介绍它的读写分离功能,所以只需要调整server.xml和schema.xml文件即可。

1、解压 Mycat 安装包

tar xf Mycat-server-1.6.7.4-test-20191113141017-linux.tar.gz -C /usr/local/

2、server.cml文件配置,位于安装目录 /usr/local/mycat/conf/ 下,此文件主要定义连接mycat用户的配置,权限规则。我们可以按需求添加用户及访问权限。通常对以下参数进行修改即可。(修改前请备份)

   <user name="root" defaultAccount="true"> ##root用户
                <property name="password">123456</property> ##设置密码
                <property name="schemas">test</property> ##数据库名称,多个数据库以逗号分隔
                <property name="defaultSchema">test</property> ##默认数据库
                <!--No MyCAT Database selected 错误前会尝试使用该schema作为schema,不设置则为null,报错 -->
                <!-- 表级 DML 权限设置 -->
                <!--            
                <privileges check="false">
                        <schema name="TESTDB" dml="0110" >
                                <table name="tb01" dml="0000"></table>
                                <table name="tb02" dml="1111"></table>
                        </schema>
                </privileges>           
                 -->
        </user>
        <user name="user"> ##user用户
                <property name="password">userpasswd</property> ##用户密码
                <property name="schemas">test</property> ##用户可以访问到的数据库,多个数据库一逗号分隔。
                <property name="readOnly">true</property> ## 设置只读权限
                <property name="defaultSchema">test</property> ##默认数据库
        </user>

如若拷贝使用,请删除#号以及后面文字。

3、配置schema.xml文件,位于 /usr/local/mycat/conf/ 下,此文件涉及较多,我们只做读写分离,可以删除多余选项,只保留配置读写分离段即可。(修改前请备份)

<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">

        <schema name="test" checkSQLschema="true" sqlMaxLimit="100" dataNode="dn1"> </schema>
        <dataNode name="dn1" dataHost="localhost1" database="test" />
        <dataHost name="localhost1" maxCon="1000" minCon="10" balance="2"
                          writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
                <heartbeat>select user()</heartbeat>
                <!-- can have multi write hosts -->
                <writeHost host="hostM1" url="172.26.208.100:3306" user="root" password="111111">
                        <readHost host="R1" url="172.26.208.101:3306" user="root" password=" 111111" />
                </writeHost>
                <!-- <writeHost host="hostM2" url="localhost:3316" user="root" password="123456"/> -->
        </dataHost>
</mycat:schema>

数据库及读写节点可根据自身环境进行添加。此处用于演示安装,只采用一主一从模式。

参数解析
name 指定dataHost的名字
maxCon 指定每个读写实例连接池的最大连接。也就是说,标签内嵌套的writeHost、 readHost 标签都会使用这个属性的值来实例化出连接池的最大连接数。
minCon 指定每个读写实例连接池的最小连接,初始化连接池的大小。
balance 负载均衡类型:
(1)balance=“0”, 不开启读写分离机制,所有读操作都发送到当前可用的writeHost 上。
(2)balance=“1”,全部的 readHost 与 stand by writeHost 参与 select 语句的负载均衡,简单的说,当双主双从模式(M1->S1,M2->S2,并且 M1 与 M2 互为主备),正常情况下,M2,S1,S2 都参与 select 语句的负载均衡。
(3)balance=“2”,所有读操作都随机的在 writeHost、 readhost 上分发。
(4)balance=“3”,所有读请求随机的分发到 wiriterHost 对应的 readhost 执行,writerHost 不负担读压力,注意 balance=3 只在 1.4 及其以后版本有,1.3 没有。
switchType -1表示不自动切换 1自动切换,默认值。 基于 MySQL 主从同步的状态决定是否切换
host 用于标识不同实例,一般 writeHost 我们使用M1,readHost 我们用S1。
url 后端实例连接地址,如果是使用 native 的 dbDriver,则一般为 address:port 这种形式。用 JDBC 或其他的dbDriver,则需要特殊指定。当使用 JDBC 时则可以这么写:jdbc:mysql://localhost:3306/。
user 后端存储实例需要的用户名字
password 后端存储实例需要的密码
weight 权重 配置在 readhost 中作为读节点的权重(1.4 以后)
usingDecrypt 是否对密码加密默认 0 否 如需要开启配置 1,同时使用加密程序对密码加密
注:参数详解为引用博文,原文链接:https://www.cnblogs.com/icebutterfly/p/9505624.html 如若侵权,联系既删

四、启动测试

1、启动服务

cd /usr/local/mycat
./bin/mycat start

2、查看端口,能够看到有两个端口已经启动, 8066 90668066 为应用端口,前端程序连接使用。 9066为管理端口,可以通过 9066 查看后端数据库节点的工作状态,以及执行一下系统命令。

3、可以通过日志文件查看mycat读写分离的工作方式,日志目录在 /usr/local/mycat/logs/ 下。

流水文档 仅供参考
生产使用 亲测可行

安装完毕
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值