返回顶部
首页 > 资讯 > 数据库 >Mycat的使用 - 02.配置
  • 960
分享到

Mycat的使用 - 02.配置

2024-04-02 19:04:59 960人浏览 安东尼
摘要

上次介绍Mycat概念时, 说到了分片表, 下面就从配置一个分片表入手简述Mycat的配置. schema.xml是首先遇到的配置文件, 其管理着Mycat的逻辑库, 表, 分片规则, 分片节点和节点主机,

上次介绍Mycat概念时, 说到了分片表, 下面就从配置一个分片表入手简述Mycat的配置.

schema.xml是首先遇到的配置文件, 其管理着Mycat的逻辑库, 表, 分片规则, 分片节点和节点主机, 如此内容分别呈现在相应的标签中, 配置过程即对这些标签的设置.

  1. 逻辑库的设置, 即schema标签, 指定库名称testdb.

<schema name="testdb" checksqlschema="true" sqlMaxLimit="100">

...

</schema>

  1. 表的设置, 即table标签, 指定表名称tb1, 所在分片节点, 和分片规则. table标签要包含在schema标签中.

<table name="tb1" datanode="dnTest1,dnTest2" rule="mod-long"/>

  1. 分片节点的设置, 即dataNode标签, 指定分片节点名称, 所在节点主机, 如分片节点dnTest1位于节点主机Rep1_3306上, 和与之对应的物理库的名称, 如分片节点dnTest1对应物理库test1(其真实的存在于后端数据库实例上).

<dataNode name="dnTest1" dataHost="Rep1_3306" database="test1"/>

<dataNode name="dnTest2" dataHost="Rep2_3306" database="test2"/>

  1. 节点主机的设置, 即dataHost标签,指定节点主机名称, 与之对应的后端数据库实例信息, 和读写分离配置, 心跳语句等, 之后在Mycat高可用部分会进一步说明该处.

<dataHost name="Rep1_3306" maxCon="20" minCon="5" balance="2" writeType="0" dbType="Mysql" dbDriver="native" switchType="1">

<heartbeat>select user()</heartbeat>

<writeHost host="hostM1" url="192.168.4.235:3306" user="zzzz" passWord="zzzz">

    <readHost host="hostS1" url="192.168.4.234:3306" user="zzzz" password="zzzz"/>

</writeHost>

</dataHost>

<dataHost name="Rep2_3306" maxCon="20" minCon="5" balance="2" writeType="0" dbType="mysql" dbDriver="native" switchType="1">

<heartbeat>select user()</heartbeat>

<writeHost host="hostM2" url="192.168.4.151:3306" user="zzzz" password="zzzz">

    <readHost host="hostS2" url="192.168.4.150:3306" user="zzzz" password="zzzz"/>

</writeHost>

</dataHost>

在对dataHost标签设置时,后端MySQL实例要创建好zzzz用户.

mysql> create user 'zzzz'@'192.168.4.%' identified by 'zzzz';

mysql> grant select, insert, update, delete, execute, alter, create on test1.* to 'zzzz'@'192.168.4.%';

由于tb1是分片表, 还需说明分片字段和分片算法, 配置rule.xml文件.

  1. 分片字段, 为tb1表的主键id字段.

<tableRule name="mod-long">

<rule>

    <columns>id</columns>

    <alGorithm>mod-long</algorithm>

</rule>

</tableRule>

  1. 分片算法, 简单取摸.

<function name="mod-long" class="org.opencloudb.route.function.PartitionByMod">

<property name="count">2</property>

</function>

至此tb1表配置完了, 要通过Mycat访问该表,还要一个简单权限, 配置server.xml文件, 该文件还包括了Mycat的系统配置, 和调优参数.

<user name="test_user">

<property name="password">test_user</property>

<property name="schemas">testdb</property>

</user>

现在就可以登陆Mycat, 创建tb1的表结构了, 该步骤也可直接到后端实例上做, 要有多个节点的话, 会比较麻烦, 所以才给zzzz用户赋予了create权限, 直接通过Mycat创建.

  1. 登陆mycat

$ mysql -h292.168.4.184 -P8066 -utest_user -ptest_user

mysql> create table tb1(id int auto_increment primary key, user_name varchar(30) not null default '');

此时就可以使用tb1表了, 插入条数据, 通过日志看下路由过程, 为了看到比较详细的日志, 先将日志级别调整为debug, 配置log4j.xml文件.

<root>

<level value="debug" />

<appender-ref ref="FILE" />

</root>

  1. 插入数据

mysql> insert into tb1 select null, 'abc';

ERROR 1064 (HY000): partition table, insert must provide ColumnList

mysql> insert into tb1(id, user_name) values(null, 'abc');

ERROR 1064 (HY000): For input string: "NULL"

mysql> insert into tb1(id, user_name) values(7, 'abc');

Query OK, 1 row affected (0.00 sec)

  1. 观察日志, 可见route到dnTest2分片节点上insert.

03/18 08:33:04.221 DEBUG [$_NIOReactOR-2-RW] (ServerQueryHandler.java:56) -ServerConnection [id=2, schema=testdb, host=192.168.4.184, user=test_user,txIsolation=3, autocommit=true, schema=testdb]insert into tb1(id, user_name) values(7, 'abc')

03/18 08:33:04.222 DEBUG [$_NIOREACTOR-2-RW] (NonBlockingSession.java:113) -ServerConnection [id=2, schema=testdb, host=192.168.4.184, user=test_user,txIsolation=3, autocommit=true, schema=testdb]insert into tb1(id, user_name) values(7, 'abc'), route={

1 -> dnTest2{insert into tb1(id, user_name) values(7, 'abc')}

} rrs

03/18 08:33:04.222 DEBUG [$_NIOREACTOR-2-RW] (MySQLConnection.java:459) -con need syn ,total syn cmd 2 commands SET names utf8;SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ;schema change:false con:MySQLConnection [id=5, lastTime=1521333184222, user=zzzz, schema=test2, old shema=test2, borrowed=true, fromSlaveDB=false, threadId=68, charset=utf8, txIsolation=0, autocommit=true, attachment=dnTest2{insert into tb1(id, user_name) values(7, 'abc')}, respHandler=SingleNodeHandler [node=dnTest2{insert into tb1(id, user_name) values(7, 'abc')}, packetId=0], host=192.168.4.151, port=3306, statusSync=null, writeQueue=0, modifiedSQLExecuted=true]

您可能感兴趣的文档:

--结束END--

本文标题: Mycat的使用 - 02.配置

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

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

猜你喜欢
  • Mycat的使用 - 02.配置
    上次介绍Mycat概念时, 说到了分片表, 下面就从配置一个分片表入手简述Mycat的配置. schema.xml是首先遇到的配置文件, 其管理着Mycat的逻辑库, 表, 分片规则, 分片节点和节点主机,...
    99+
    2024-04-02
  • Mycat的安装配置
    什么是Mycat至于什么是Mycat,可能在不同的角色下有不同的理解。对MySQL架构有过了解的话,都知道MySQL实际上是由Server层和存储引擎层组成的。所以对于DBA来说,Mycat 就是 MySQ...
    99+
    2024-04-02
  • Redhat(02):yum 配置
    一、Redhat  5、6mount 安装盘mount /dev/cdrom /mnt修改配置文件vi /etc/yum.repos.d/local.repo[Server]name=serverbaseurl=file:///m...
    99+
    2023-06-05
  • Linux-Mycat-安装配置
    MyCat介绍 面向企业应用开发的“大数据库集群”支持事务、ACID、可以替代Mysql的加强版数据库可以视为“Mysql”集群的企业级数据库,用来替代昂贵的Oracle集群融合内存缓存技术、Nosql技...
    99+
    2024-04-02
  • MyCat读写分离配置
        读写分离在我们配置数据库集群时是必然会考虑的一个点,因为这可以有效的降低主库的负载,并且在读多余写的情况下,绝大部分的读请求都可以分发到各个不同的从库上。即使从库负载不够,也可以通过增加从库的方式来...
    99+
    2024-04-02
  • Mycat中如何配置schmea.xml
    这篇文章主要为大家展示了“Mycat中如何配置schmea.xml”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Mycat中如何配置schmea.xml”这篇文...
    99+
    2024-04-02
  • HaProxy+Keepalived+Mycat高可用群集配置
    概述  本章节主要介绍配置HaProxy+Keepalived高可用群集,Mycat的配置就不在这里做介绍,可以参考我前面写的几篇关于Mycat的文章。 部署图: 配...
    99+
    2024-04-02
  • mycat配置文件的详细介绍
    这篇文章主要为大家分享mycat的配置文件。文中还介绍了mycat常用的几个分片算法的计算过程和使用方法,希望大家通过这篇文章能有所收获。常用配置文件间的关系由上图可以看到 Mycat 的核心配置文件均采用...
    99+
    2024-04-02
  • Mycat 核心配置是怎么样的
    这篇文章给大家介绍Mycat 核心配置是怎么样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。常用配置文件间的关系由上图可以看到 Mycat 的核心配置文件均采用xml格式,这几个配置...
    99+
    2024-04-02
  • 【Mycat】主键id自增长配置
    在实现分库分表的情况下,数据库自增主键已无法保证自增主键的全局唯一。为此,MyCat 提供了全局sequence,并且提供了包含本地配置和数据库配置等多种实现方式,实现方式主要有三种:本地文件方式、数据库方...
    99+
    2024-04-02
  • Mycat读写分离配置实践
       工作这些年来,也去了一些地方,有了一些见闻,隐隐感觉很多文化和猫有着千丝万缕的联系。就拿IT行业来说吧,猫有着很高的曝光率,比如大名鼎鼎的 tomcat,是由SUN的软件构架...
    99+
    2024-04-02
  • mycat中datanode和datahost如何配置
    这篇文章主要介绍了mycat中datanode和datahost如何配置,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 ...
    99+
    2024-04-02
  • Mycat监控工具Mycat-web的使用方法
    本篇文章为大家展示了Mycat监控工具Mycat-web的使用方法,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Mycat-web下载地址:http://dl.my...
    99+
    2024-04-02
  • mycat简单使用
    MyCat MyCAT是使用JAVA语言进行编写开发,使用前需要先安装JAVA运行环境(JRE),由于MyCAT中使用了JDK7中的一些特性,所以 要求必须在JDK7以上的版本上运行。 mysql mysql主从复制 首先安装m...
    99+
    2021-02-12
    mycat简单使用
  • MyCat - 使用篇(3)
    全局序列号数据切分后,原有的关系数据库中的主键约束在分布式条件下将无法使用,因此需要引入外部机制保证数据唯一性标识,这种保证全局性的数据唯一标识的机制就是全局序列号(sequence)。 全局序列号有很多实现的方式,比如本地配置文件,或者拿...
    99+
    2023-01-31
    MyCat
  • MyCat教程三:安装及配置介绍
    一、安装MyCat 1.安装准备环境 1.1 安装JDK   因为MyCat是java开发的,所以需要java虚拟机环境,在Linux节点中安装JDK是必须的。 1.2 放开相关端口   在主从节点上都放开对端口3306...
    99+
    2015-06-08
    MyCat教程三:安装及配置介绍
  • Mycat三大核心配置文件是什么
    这篇文章主要介绍“Mycat三大核心配置文件是什么”,在日常操作中,相信很多人在Mycat三大核心配置文件是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mycat三大核...
    99+
    2024-04-02
  • Mycat的使用 - 04.事务支持
    03全局序列号篇详细介绍了分片表, 业务在使用分片表时, 很自然的可能会遇到一个事务中操作的数据分布在多个分片节点上, 即分布式事务. 先来直观感受下Mycat处理事务的过程.登陆tb3表的dnTest2节...
    99+
    2024-04-02
  • MyCAT如何安装使用
    这篇文章主要介绍了MyCAT如何安装使用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。 MyCAT安装 mycat运行依赖于...
    99+
    2024-04-02
  • Mycat的使用 - 01.概念, 及安装
    初识Mycat1. Mycat是什么Mycat是一款数据库中间件, 其用于分库分表, 还实现了读写分离, 故障切换等功能.2. Mycat的工作原理用一个动词来概括就是"拦截", 它拦截...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作