iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >MySQL-mycat读写分离
  • 166
分享到

MySQL-mycat读写分离

摘要

Mycat 需要安装jdk 1.7 或者以上版本第一步:下载jdk-8u131-linux-x64.tar.gz文件 Http://haixi.sfkcn.com:8080/201704/tools/jdk-linux-x64.tar.gz


	MySQL-mycat读写分离
[数据库教程]

Mycat 需要安装jdk 1.7 或者以上版本
第一步:下载jdk-8u131-linux-x64.tar.gz文件 Http://haixi.sfkcn.com:8080/201704/tools/jdk-linux-x64.tar.gz
第二步:新建/usr/java文件夹,将jdk-8u131-linux-x64.tar.gz放到该文件夹中,并解压到当前目录下
第三步:配置环境变量 在/etc/profile底部加入如下内容:
JAVA_HOME=/usr/java/jdk1.8.0_131 PATH=$JAVA_HOME/bin:$PATH CLASSPATH=$JAVA_HOME/jre/lib/ext:$JAVA_HOME/lib/tools.jar export PATH JAVA_HOME CLASSPATH[[email protected] java]# source /etc/profile #使环境变量生效
查看java –version

服务启动与启动设置
MyCAT在Linux中部署启动时,首先需要在Linux系统的环境变量中配置MYCAT_HOME,操作方式如下:
1)vi /etc/profile,在系统环境变量文件中增加
MYCAT_HOME=/usr/local/mycat PATH=$MYCAT_HOME/bin:$PATH
2) 执行 source /etc/profile 命令,使环境变量生效。
如果是在多台Linux系统中组建的MyCAT集群,那需要在MyCAT Server所在的服务器上配置对其他ip和主机名的映射,配置方式如下:
vi /etc/hosts
例如:我有3台机器,配置如下:
IP 主机名:
192.168.12.110 Master.cn
192.168.12.111 Slave.cn
192.168.12.112 Slave-2.cn
编辑完后,保存文件。
(mycat的用户账号和授权信息是在conf/server.xml文件中配置
Vim /usr/local/mycat/conf/server.xml




druidparser


123456
ha


user
ha
true


编辑MyCAT的配置文件schema.xml,关于dataHost的配置信息如下:
Vim /usr/local/mycat/conf/schema.xml







select user()





有两个参数需要注意,balance和 switchType。
其中,balance指的负载均衡类型,目前的取值有4种:

  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不负担读压力
    switchType指的是切换的模式,目前的取值也有4种:
  5. switchType=‘-1‘ 表示不自动切换
  6. switchType=‘1‘ 默认值,表示自动切换
  7. switchType=‘2‘ 基于Mysql主从同步的状态决定是否切换,心跳语句为 show slave status
  8. switchType=‘3‘基于mysql galary cluster的切换机制(适合集群)(1.4.1),心跳语句为 show status like ‘wsrep%‘。
    经过以上两个步骤的配置,就可以到/usr/local/mycat/bin 目录下执行:
    ./mycat start
    即可启动mycat服务!
    技术图片

配置MYsql主从
SLAVE上创建数据库和表,用于实现写操作:
[[email protected] ~]# mysql -uroot -p123456
mysql> create database ha;
mysql> use ha;
mysql> create table test(id int,name varchar(20));
mysql> insert into test values(1,’man’);
授权给mycat登陆数据库使用的帐号
mysql> GRANT ALL PRIVILEGES ON . TO ‘mycat‘@"%" IDENTIFIED BY "123456";
mysql> grant replication slave on . to [email protected]"10.10.10.%" identified by "123456";
mysql>flush privileges;
mysqldump –uroot –p123456 -B ha>ha.sql #导出给从库
关闭密码强度审计,在my.cnf添加validate-passWord=off
SLAVE-2上导入数据库和表,用于实现读操作:
[[email protected] ~]# mysql -uroot -p123456授权给mycat登陆数据库使用的帐号
mysql> grant all on db. to [email protected]‘%‘ identified by ‘123456‘;
mysql>flush privileges;
mysql>stop slave; #停止slave
mysql> change master to master_host=‘192.168.12.111‘,master_user=‘slave‘,master_password=‘123456‘;
mysql> start slave; #启动slave
mysql> show slave statusG 查看状态 ,有两个yes主从同步成功!
启动服务MYCAT服务
[[email protected] ~]# /usr/local/mycat/bin/mycat start
测试读写分离
当我们SLAVE挂掉后咋样呢
模拟故障:从服务器挂掉了
[[email protected] ~]# systemctl stop mysqld
在客户端上测试读写
[[email protected] ~]# mysql -uroot -p123456 -h 192.168.12.110 -P8066
mysql> use ha;
mysql> select
from t1;
技术图片
技术图片

模拟故障:主服务器挂掉了
[[email protected] ~]# systemctl stop mysqld
在客户端上测试读写
[[email protected] ~]# mysql -uroot -p123456 -h 192.168.12.110 -P8066
mysql> create table t3(id int);
ERROR 1184 (HY000): 拒绝连接 #主数据库停止了,是无法写操作的,但不影响读.
mysql> use ha;
mysql> select * from t1;
技术图片
技术图片

MySQL-mycat读写分离

原文地址:https://blog.51cto.com/14483703/2511956

您可能感兴趣的文档:

--结束END--

本文标题: MySQL-mycat读写分离

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

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

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

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

下载Word文档
猜你喜欢
  • oracle怎么查询当前用户所有的表
    要查询当前用户拥有的所有表,可以使用以下 sql 命令:select * from user_tables; 如何查询当前用户拥有的所有表 要查询当前用户拥有的所有表,可以使...
    99+
    2024-05-15
    oracle
  • oracle怎么备份表中数据
    oracle 表数据备份的方法包括:导出数据 (exp):将表数据导出到外部文件。导入数据 (imp):将导出文件中的数据导入表中。用户管理的备份 (umr):允许用户控制备份和恢复过程...
    99+
    2024-05-15
    oracle
  • oracle怎么做到数据实时备份
    oracle 实时备份通过持续保持数据库和事务日志的副本来实现数据保护,提供快速恢复。实现机制主要包括归档重做日志和 asm 卷管理系统。它最小化数据丢失、加快恢复时间、消除手动备份任务...
    99+
    2024-05-15
    oracle 数据丢失
  • oracle怎么查询所有的表空间
    要查询 oracle 中的所有表空间,可以使用 sql 语句 "select tablespace_name from dba_tablespaces",其中 dba_tabl...
    99+
    2024-05-15
    oracle
  • oracle怎么创建新用户并赋予权限设置
    答案:要创建 oracle 新用户,请执行以下步骤:以具有 create user 权限的用户身份登录;在 sql*plus 窗口中输入 create user identified ...
    99+
    2024-05-15
    oracle
  • oracle怎么建立新用户
    在 oracle 数据库中创建用户的方法:使用 sql*plus 连接数据库;使用 create user 语法创建新用户;根据用户需要授予权限;注销并重新登录以使更改生效。 如何在 ...
    99+
    2024-05-15
    oracle
  • oracle怎么创建新用户并赋予权限密码
    本教程详细介绍了如何使用 oracle 创建一个新用户并授予其权限:创建新用户并设置密码。授予对特定表的读写权限。授予创建序列的权限。根据需要授予其他权限。 如何使用 Oracle 创...
    99+
    2024-05-15
    oracle
  • oracle怎么查询时间段内的数据记录表
    在 oracle 数据库中查询指定时间段内的数据记录表,可以使用 between 操作符,用于比较日期或时间的范围。语法:select * from table_name wh...
    99+
    2024-05-15
    oracle
  • oracle怎么查看表的分区
    问题:如何查看 oracle 表的分区?步骤:查询数据字典视图 all_tab_partitions,指定表名。结果显示分区名称、上边界值和下边界值。 如何查看 Oracle 表的分区...
    99+
    2024-05-15
    oracle
  • oracle怎么导入dump文件
    要导入 dump 文件,请先停止 oracle 服务,然后使用 impdp 命令。步骤包括:停止 oracle 数据库服务。导航到 oracle 数据泵工具目录。使用 impdp 命令导...
    99+
    2024-05-15
    oracle
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作