广告
返回顶部
首页 > 资讯 > 数据库 >mysql+mycat实现读写分离
  • 556
分享到

mysql+mycat实现读写分离

2024-04-02 19:04:59 556人浏览 泡泡鱼
摘要

Centos7 master slave mycat1.6 client 192.168.41.10 192.168.41.11 192.168.41.12 192.168.41.13

Centos7

master slave mycat1.6 client
192.168.41.10 192.168.41.11 192.168.41.12 192.168.41.13

实验环境关闭自己的防火墙
配置所有主机hosts文件:
mysql+mycat实现读写分离
1、master(41.10):
vim /etc/my.cnf
mysql+mycat实现读写分离
systemctl restart Mysqld \重启服务读取配置文件参数
1)配置复制用户以及root用户权限
mysql+mycat实现读写分离
2、slave(41.11)
配置/etc/my.cnf配置文件
mysql+mycat实现读写分离
systemctl restart mysqld
mysql> change master to master_host='192.168.41.10',master_user='myslave',master_passWord='123.com',master_log_file='mysql-bin.000002',master_log_pos=1334;
mysql> start slave ;
mysql> show slave status\G;
Slave_io_Running: Yes
Slave_SQL_Running: Yes
mysql> grant all on . to root@'%' identified by '123.com';
mysql> flush privileges;
回到master主机创建test库
mysql> create database test;
3、配置mycat(41.12)
1)部署mycat
wget Http://dl.mycat.io/1.6-RELEASE/Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
[root@192 ~]# tar zxf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local
2)加载环境变量
[root@192 ~]# vi /etc/profile
.....
export PATH=$PATH:/usr/local/java/bin
export JAVA_HOME=/usr/local/java
export MYCAT_HOME=/usr/local/mycat
export PATH=$PATH:/usr/local/mycat/bin
[root@192 ~]# source /etc/profile
3)配置serve.xml
[root@192 ~]# cd /usr/local/mycat/conf/
[root@192 conf]# vim server.xml

......
<user name="root">
<property name="password">123.com</property>
<property name="schemas">test</property>

            &lt;!-- 表级 DML 权限设置 --&gt;
            &lt;!--            
            &lt;privileges check="false"&gt;
                    &lt;schema name="TESTDB" dml="0110" &gt;
                            &lt;table name="tb01" dml="0000"&gt;&lt;/table&gt;
                            &lt;table name="tb02" dml="1111"&gt;&lt;/table&gt;
                    &lt;/schema&gt;
            &lt;/privileges&gt;           
             --&gt;
    &lt;/user&gt;

    &lt;user name="user"&gt;
            &lt;property name="password"&gt;user&lt;/property&gt;
            &lt;property name="schemas"&gt;test&lt;/property&gt;
            &lt;property name="readOnly"&gt;true&lt;/property&gt;
    &lt;/user&gt;

</mycat:server>
4)配置schema.xml
[root@192 conf]# vim schema.xml
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">

    <schema name="test" checkSQLschema="false" sqlMaxLimit="100" datanode="dn1">
    </schema>

    <dataNode name="dn1" dataHost="host01" database="test" />

    <dataHost name="host01" maxCon="1000" minCon="10" balance="1"
                      writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
            <heartbeat>show slave status</heartbeat>
            <writeHost host="hostM1" url="192.168.41.10:3306" user="root" password="123.com">
            <readHost host="hostS1" url="192.168.41.11:3306" user="root" password="123.com"/>
            </writeHost>
    </dataHost>
            </mycat:schema>
  balance 属性负载均衡类型,目前的取值有 4 种:

balance="0", 不开启读写分离机制,所有读操作都发送到当前可用 的writeHost 上。 balance="1",全部的 readHost 与 stand by writeHost 参与 select 语句的负载均衡,简单的说,当双主双从模式(M1 ->S1 , M2->S2,并且 M1 与 M2 互为主备),正常情况下, M2,S1,S2 都参与 select 语句的负载均衡。 balance="2",所有读操作都随机的在 writeHost、 readhost 上分发。 balance="3", 所有读请求随机的分发到 wiriterHost 对应的 readhost 执行,writerHost 不负担读压力,注意 balance=3 只在 1.4 及其以后版本有, 1.3 没有。

writeType 属性,负载均衡类型,目前的取值有 3 种:
writeType="0", 所有写操作发送到配置的第一个 writeHost,第一个挂了切到还生存的第二个writeHost,重新启动后已切换后的为准,切换记录在配置文件中:dnindex.properties . writeType="1",所有写操作都随机的发送到配置的 writeHost。 writeType="2",没实现。

switchType 属性
-1 表示不自动切换 1 默认值,自动切换 2 基于MySQL 主从同步的状态决定是否切换

5)启动mycat服务器
[root@192 logs]# mycat start
[root@192 logs]# tailf wrapper.log #观察启动日志,便于排错
[root@192 logs]# ss -anpt | grep java
LISTEN 0 1 127.0.0.1:32000 : users:(("java",pid=40133,fd=4))
LISTEN 0 50 :::50632 ::: users:(("java",pid=40133,fd=51))
LISTEN 0 100 :::9066 :::
users:(("java",pid=40133,fd=69))
LISTEN 0 50 :::33782 ::: users:(("java",pid=40133,fd=53))
LISTEN 0 50 :::1984 :::
users:(("java",pid=40133,fd=52))
LISTEN 0 100 :::8066 :::* users:(("java",pid=40133,fd=73))

4、客户端(41.13)验证读写分离

   ①登录到连接端口

[root@192 ~]# mysql -h 192.168.41.12 -P 8066 -uroot -p123.com
mysql> show databases;
+----------+
| DATABASE |
+----------+
| test |
+----------+
1 row in set (0.01 sec)

mysql> use test
Database changed
mysql> create table tb (id int);
Query OK, 0 rows affected (0.03 sec)

mysql> insert into tb values (1);
Query OK, 1 row affected (0.05 sec)

mysql> select * from tb;
+------+
| id |
+------+
| 1 |
+------+
1 row in set (0.02 sec)
②登录管理端口
[root@192 ~]# mysql -P9066 -uroot -p123.com -h 192.168.41.12
mysql> show @@datasource ;
+----------+--------+-------+--------------+------+------+--------+------+------+---------+-----------+------------+
| DATANODE | NAME | TYPE | HOST | PORT | W/R | ACTIVE | IDLE | SIZE | EXECUTE | READ_LOAD | WRITE_LOAD |
+----------+--------+-------+--------------+------+------+--------+------+------+---------+-----------+------------+
| dn1 | hostM1 | mysql | 192.168.1.12 | 3306 | W | 0 | 10 | 1000 | 49 | 0 | 2 |
| dn1 | hostS1 | mysql | 192.168.1.10 | 3306 | R | 0 | 6 | 1000 | 44 | 2 | 0 |
+----------+--------+-------+--------------+------+------+--------+------+------+---------+-----------+------------+
从管理端口观察两主机负载变化,发现READ_LOAD在hostS1为2, WRITE_LOAD在hostM1为2,说明读写分离已经实现

您可能感兴趣的文档:

--结束END--

本文标题: mysql+mycat实现读写分离

本文链接: https://www.lsjlt.com/news/36571.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql+mycat实现读写分离
    centos7 master slave mycat1.6 client 192.168.41.10 192.168.41.11 192.168.41.12 192.168.41.13 ...
    99+
    2022-10-18
  • MyCAT实现MySQL的读写分离
    在MySQL中间件出现之前,对于MySQL主从集群,如果要实现其读写分离,一般是在程序端实现,这样就带来一个问题,即数据库和程序的耦合度太高,如果我数据库的地址发生改变了,那么我程序端也要进行相应的修改,如...
    99+
    2022-10-18
  • MySQL-mycat读写分离
    Mycat 需要安装JDK 1.7 或者以上版本第一步:下载jdk-8u131-linux-x64.tar.gz文件 http://haixi.sfkcn.com:8080/201704/tools/jdk-linux-x64.tar.gz...
    99+
    2021-04-03
    MySQL-mycat读写分离 数据库入门 数据库基础教程 数据库 mysql
  • mycat做Mysql的读写分离
    在MySQL中间件出现之前,对于MySQL主从集群,如果要实现其读写分离,一般是在程序端实现,这样就带来一个问题,即数据库和程序的耦合度太高,如果我数据库的地址发生改变了,那么我程序端也要进行相应的修改,如...
    99+
    2022-10-18
  • 使用Mycat怎么实现MySQL读写分离
    今天就跟大家聊聊有关使用Mycat怎么实现MySQL读写分离,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。搭建环境操作系统:CentOS-6.5-x...
    99+
    2022-10-18
  • Mycat如何实现Mysql集群读写分离
    这篇文章给大家分享的是有关Mycat如何实现Mysql集群读写分离的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。MySQL 读写分离的概述MySQL 作为目前世界上使用最广泛的免...
    99+
    2022-10-19
  • Mycat学习实战-Mycat读写分离
    详情:http://blog.csdn.net/ygqygq2/article/details/78438017 ...
    99+
    2022-10-18
  • Mycat中间件实现Mysql主从读写分离
    环境规划: IP地址 主机名 角色 备注 10.4.132.50 k8s01 mycat,master 10.4.132.42 k8s02 slave ...
    99+
    2022-10-18
  • mycat-3:读写分离
    利用mycat读写分离主库192.168.56.101,备库192.168.56.25.3个数据库db1,db2,db3.主从同步见之前数据库目录。 修改schema.xml balance="0"0:不开启读写分离机制,所有读操作都发送到...
    99+
    2023-01-31
    mycat
  • MyCat教程四:实现读写分离
    本文我们来给大家介绍下通过MyCat来实现MySQL的读写分离操作   MyCat读写分离   一、读写分离配置   前面我们已经介绍过了mysql的主从同步和mycat的安装及相关配置文件的介绍,现在我们来配置下具体的读写分...
    99+
    2020-12-19
    MyCat教程四:实现读写分离
  • MyCat中怎么实现读写分离
    这期内容当中小编将会给大家带来有关MyCat中怎么实现读写分离,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、mycat实现读写分离这里没有用到mysql03主机,读写...
    99+
    2022-10-18
  • MyCat怎么实现MySQL一主两从读写分离
    这篇文章主要介绍“MyCat怎么实现MySQL一主两从读写分离”,在日常操作中,相信很多人在MyCat怎么实现MySQL一主两从读写分离问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
    99+
    2022-10-18
  • MyCat如何实现MySQL双主一从读写分离
    这篇文章给大家分享的是有关MyCat如何实现MySQL双主一从读写分离的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1)配置server.xml<user nam...
    99+
    2022-10-18
  • MyCat读写分离配置
        读写分离在我们配置数据库集群时是必然会考虑的一个点,因为这可以有效的降低主库的负载,并且在读多余写的情况下,绝大部分的读请求都可以分发到各个不同的从库上。即使从库负载不够,也可以通过增加从库的方式来...
    99+
    2022-10-18
  • Mycat读写分离配置实践
       工作这些年来,也去了一些地方,有了一些见闻,隐隐感觉很多文化和猫有着千丝万缕的联系。就拿IT行业来说吧,猫有着很高的曝光率,比如大名鼎鼎的 tomcat,是由SUN的软件构架...
    99+
    2022-10-18
  • 如何利用mycat实现mysql数据库读写分离
    这篇文章主要介绍了如何利用mycat实现mysql数据库读写分离,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。什么是MyCAT一个彻底开源的...
    99+
    2022-10-18
  • Linux如何使用 MyCat 实现 MySQL 主从读写分离
    目录Linux-使用 MyCat 实现 MySQL 主从读写分离 一、MySQL 读写分离1、MySQL 读写分离的概述2、读写分离工作原理3、为什么要读写分离3、实现读写分离的方式...
    99+
    2022-11-12
  • mycat读写分离方案一
    1.什么是MYCAT 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替代昂贵的Oracle集群 一个融合内存缓存技术、NoSQL技术、...
    99+
    2021-06-08
    mycat读写分离方案一
  • Mycat简单实现读写分离与分库分表
    Mycat数据库读写分离 环境: 客户端1.13 ↓ mycat中间件1.11 ↙ ...
    99+
    2022-10-18
  • mysql数据库中怎么利用mycat实现读写分离
    这期内容当中小编将会给大家带来有关mysql数据库中怎么利用mycat实现读写分离,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1、部署mycat下载 [root@myc...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作