mysql-mycat读写分离实现

mycat是数据库中间件,就是介于数据库与应用之间,进行数据处理与交互的中间服务。

MyCAT 是使用 JAVA 语言进行编写开发,使用前需要先安装 JAVA 运行环境(JRE),要求jdk必须是7以上的版本。

下载部署jdk

wget https://download.oracle.com/java/19/latest/jdk-19_linux-x64_bin.rpm
rpm -ivh jdk-19_linux-x64_bin.rpm

#如果不知道jdk文件解压到去了

 rpm -ql jdk-19-2000:19.0.2-7.x86_64

创建java目录,并把文件移动到该目录下:

mkdir /usr/local/java
 mv /usr/lib/jvm/jdk-19-oracle-x64 /usr/local/java/

配置环境变量:

[root@mycat ~]# vim /etc/profile.d/java.sh
export JAVA_HOME=/usr/local/java/jdk-19-oracle-x64
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin
export PATH=$PATH:${JAVA_PATH}

使环境变量生效

source /etc/profile.d/java.sh

检查下载是否成功:

java -version

下载Mycat:

#下载
wget http://dl.mycat.org.cn/1.6.5/Mycat-server-1.6.5-release-20180122220033-linux.tar.gz
#解压
tar -xf Mycat-server-1.6.5-release-20180122220033-linux.tar.gz -C /usr/local/     

认识配置文件

MyCAT 目前主要通过配置文件的方式来定义逻辑库和相关配置:

/usr/local/mycat/conf/schema.xml 定义逻辑库,表、分片节点等内容。

/usr/local/mycat/conf/server.xml 定义用户以及系统相关变量,如端口等。

实操:

192.168.200.186 mysql主服务器

192.168.200.187 mysql从服务器

192.168.200.174 mycat中间件

192.168.200.175 客户端

在两个mysql的做好了主从配置的基础上,通过配置mycat实现读写分离

配置server.xml

配置schema.xml文件:

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

  <!-- 一套配置的开始 -->
  <!--定义 虚拟库(mycat用户名密码) 和 数据节点(datanode) 的关联关系 -->
  <schema name="mycat_db"
        checkSQLschema="false"
        sqlMaxLimit="100"
        dataNode="yanhuo">
   <!--这里定义的是分库分表的信息-->
   </schema>

  <!--数据节点 主要说两个事情: 主机组(怎么链接真实的mysql主从)、定义真实库 -->
  <dataNode name="yanhuo"
          dataHost="aa" database="text" />


  <dataHost name="aa"
            maxCon="1000" minCon="10"
            balance="0"
            writeType="0"
            dbType="mysql" dbDriver="native"
            switchType="1"  slaveThreshold="100">


   <heartbeat>select user()</heartbeat>  <!--心跳检测,保证mysql主从存活 -->
       <!-- can have multi write hosts -->
   <writeHost host="server" url="192.168.200.186:3306"
              user="root"  password="GZgz2301..">
      <!-- can have multi read hosts -->
      <readHost host="client" url="192.168.200.187:3306"
                user="root" password="GZgz2301.." />
     </writeHost>
   </dataHost>

   <!-- 一套配置的结束 -->
</mycat:schema>

启动mycat服务:

 /usr/local/mycat/bin/mycat  start

查看: //如果没有看见这两个进程起来,说明mycat启动失败

这个是服务使用的端口号

主服务器授权:

grant all on 数据库名.* to 用户名@'%' identified by '密码';
flush privileges;

测试:

  1. 测试mycat能不能成功登陆到两台mysql服务器

mysql -uroot -p'GZgz2301..' -h192.168.200.186 #登陆主服务器
mysql -uroot -p'GZgz2301..' -h192.168.200.187 #登陆从服务器
  1. 客户端能不能登陆到mycat

mysql -h192.168.200.174 -P8066 -ututu -p123456
  1. 客户端通过不同的账户密码登陆,能不能实现读写分离;

# 登陆读写用户
mysql -h192.168.200.174 -P8066 -ututu -p123456
登陆制度用户
mysql -h192.168.200.174 -P8066 -uuser -puser

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值