1、出现如下错误
2017-02-27 19:58:41,765 [WARN ][$_NIOREACTOR-2-RW] ServerConnection [id=4, schema=TESTDB, host=127.0.0.1, user=root,txIsolation=3, autocommit=true, schema=TESTDB]create view v_address as select address from t_gaojs err:java.sql.SQLSyntaxErrorException: op table not in schema----VIEW java.sql.SQLSyntaxErrorException: op table not in schema----VIEW
at io.mycat.route.util.RouterUtil.routeToDDLNode(RouterUtil.java:221)
at io.mycat.route.impl.AbstractRouteStrategy.route(AbstractRouteStrategy.java:70)
at io.mycat.route.RouteService.route(RouteService.java:133)
at io.mycat.server.ServerConnection.routeEndExecuteSQL(ServerConnection.java:276)
at io.mycat.server.ServerConnection.execute(ServerConnection.java:222)
at io.mycat.server.ServerQueryHandler.query(ServerQueryHandler.java:136)
很明显是说View在Schema中没有配置,把View当做表名字了,看看我来Debug一番
看看如何获取表名字的
找到错误根源了RouterUtil中的getTableName解析失败,想修改
方案一:RouterUtil中的routeToDDLNode增加Create View分支进行判断
方案二:Debug模式执行Change Value操作
那就change Value绕过错误,
那就配置吧,故意配错dataNode,来尝尝后果
<table name="t_gaojs" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" />
<table name="V_ADDRESS" dataNode="dn1" rule="auto-sharding-long" />
Caused by: io.mycat.config.util.ConfigException: Illegal table conf : table [ V_ADDRESS ] rule function [ rang-long ] partition size : 3 > table datanode size : 1, please make sure table datanode size = function partition size
我也不知道为何此处是3,很明显rang-long我没有配置数字3,有待深究
那就保持一致,看看能否OK,实验结果是OK的
<table name="t_gaojs" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" />
<table name="V_ADDRESS" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" />
相关推荐
4. **验证连接**:测试Mycat连接到MySQL 8.0数据库,确认插入和其他操作是否正常执行,没有报错。 5. **监控性能**:在生产环境中,密切监控系统性能,确保Mycat与MySQL 8.0的集成没有引入其他问题。 总之,Mycat...
如果是二进制包,那么可以直接根据上述步骤进行操作,但可能需要更深入地理解Mycat的配置和运行机制。 总之,解决这个问题需要对Mycat、MySQL以及Linux有一定的理解和实践经验。遵循正确的步骤,耐心调试,通常都能...
【Mycat1.6与SQLServer操作案例详解】 Mycat是一款开源的分布式数据库中间件,它在大型分布式系统中扮演着数据库分片的角色,能够有效地解决单个数据库性能瓶颈的问题。Mycat 1.6是其一个重要版本,提供了更稳定、...
【Mycat操作之分库分表入门】 Mycat是一款开源的分布式数据库中间件,主要功能是实现数据库的水平扩展,通过分库分表来处理大数据量的问题,减轻单机数据库的压力。它支持MySQL协议,可以透明地将一个数据库集群...
1. **创建数据库**:在MySQL主节点上创建一个数据库,例如`testdb`,然后通过主从复制机制,该数据库也会在从节点上自动创建。 2. **配置schema.xml**: - 定义逻辑库`testdb`,指向主节点上的实际数据库。 - 配置...
【Mycat1.6与Oracle操作案例详解】 在IT行业中,数据库管理是核心部分,尤其是在大型企业级应用中。Mycat是一个开源的分布式数据库中间件,它提供了数据库分片、读写分离、故障切换等功能,适用于高并发、大数据量...
由于Mycat会处理SQL的路由和分片,所以开发者可以直接对实体类进行操作,无需关心底层的数据分片细节。 在测试或运行项目时,确保Mycat服务已经启动,并且可以通过JDBC连接成功。可以通过日志观察Mycat是否正确地...
测试环境基于强大的硬件配置,包括Node(MySQL)和Server(MyCat),均运行在RedHat6.3操作系统上,配备高性能CPU和大量内存。测试工具选择的是Sysbench,这是一种广泛使用的数据库性能测试工具,能模拟多种工作负载,...
MyCAT-WEB 操作手册 MyCAT-WEB 操作手册是 MyCAT-WEB 项目的使用指南,涵盖了 MyCAT-WEB 的安装、配置、监控和性能监控等方面的内容。本手册面向所有使用 MyCAT-WEB 的开发人员,旨在帮助他们快速上手 MyCAT-WEB,...
2015年5月,由核心参与者们一起编写的第一本官方权威指南《Mycat权威指南》电子版发布,累计超过500本,成为开源项目中的首创。 截至2015年7月,超过100个项目采用Mycat,涵盖银行、电信、电子商务、物流、移动应用...
在IT行业中,自定义函数是编程中的基本技巧之一,它允许我们封装常用操作,提高代码的可读性和可重用性。"myecho_/.myecho_myecho_mycat_mycat函数创建_"这个标题表明我们将探讨如何创建并使用自定义的`myecho`和`...
2. **读写分离**:MYCAT可以自动进行读写分离,将读操作分配到多个只读节点,写操作则集中在主节点,这样可以显著提升系统的并发处理能力。 3. **路由策略**:MYCAT内置多种路由策略,可以根据不同的业务需求选择...
3. 广播表:mycat2允许用户定义广播表,广播表中的数据会存在于所有数据节点上,实现全局一致性视图。 4. 事务支持:mycat2实现了分布式事务,保证了跨节点操作的原子性、一致性、隔离性和持久性,遵循ACID原则。 ...
【标题】"mycat2 install-template(mycat2-install-template-1.21.zip)" 指的是MyCat 2的一个安装模板文件,版本为1.21,通常包含了安装MyCat 2所需的所有配置文件和脚本,用于简化部署过程。 【描述】虽然描述...
【标题】"mycat2 install-template(mycat2-install-template-1.20.zip)" 指的是MyCat 2的一个安装模板文件,版本号为1.20,存储在一个名为“mycat2-install-template-1.20.zip”的压缩包内。MyCat是开源的、基于...
2. **读写分离**:Mycat可以实现主从复制环境下的读写分离,读操作可以分散到多个从库,从而提高系统并发能力。 3. **SQL路由与合并**:Mycat能解析SQL语句,根据分片规则路由到相应的数据节点执行,并将结果进行...
1. **性能**:比较proxy和Mycat在读写操作上的响应时间,包括在正常和故障切换时的性能差异。 2. **稳定性**:观察在高并发环境下,两者是否能稳定运行,是否存在数据一致性问题。 3. **容错性**:测试主库宕机时,...
MyCat2映射关系概述 MyCat2是一款开源的数据库中间件,可以实现数据库的分布式处理、读写分离、负载均衡等功能。在MyCat2中,数据源、集群和逻辑表是三个核心概念。 数据源(DataSource)是指实际的数据库实例,...