ERROR 1184 (HY000): Invalid DataSource:0

 目录

一、问题描述

二、解决历程

三、解决方案


一、问题描述

         这个问题出现的场景是我在Linux中使用MyCat用户远程登录时出现的,搞了很久。错误提示如下图所示:

         可以看出,使用show tables找不到表。

二、解决历程

         百度反正没有我这种错误的。我参考过如下文章,都没有解决。

https://blog.csdn.net/Chen_leilei/article/details/109566480

https://blog.csdn.net/cnds123321/article/details/117934134

         最后定位我的问题是数据库问题。


三、解决方案

         首先,我们看一下schema.xml这个文件的配置。

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">

<mycat:schema xmlns:mycat="http://io.mycat/">  
  <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"></schema>  
  <dataNode name="dn1" dataHost="host1" database="testdb"/>  
  <dataHost name="host1" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> 
    <heartbeat>select user()</heartbeat>  
    <!-- can have multi write hosts -->  
    <writeHost host="hostM1" url="192.168.85.131:3306" user="root" password="123"> 
      <!-- can have multi read hosts -->  
      <readHost host="hostS1" url="192.168.85.132:3306" user="root" password="123"/> 
    </writeHost> 
  </dataHost> 
</mycat:schema>

        我们知道,schema.xml是MyCat三大配置文件之一,其中定义逻辑库,表、分片节点等内容。

       而在运行原理上,我们又知道MyCat并不直接指向实际的物理库,而是有一个逻辑库的概念。我们通过<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn1"></schema>定义了逻辑库的数据节点,但是逻辑库dataNode="dn1"最终其实还是要指向实际的物理库,所以我们也要通过<dataNode name="dn1" dataHost="host1" database="testdb" />来指向实际的物理库。而我的问题就出在这个物理库上,我实际的物理库根本就没有表,所以自然报ERROR 1184 (HY000): Invalid DataSource:0这个错误了。 实际我testdb这个真实的物理库也没建,所以也会出现卡顿问题。

       问题最终得以解决。其实问题原因很简单,但是定位的过程中由于不知道什么原因很难。仅就本例而言,我认为是我没有搞清楚<scema>和<dataNode>这两个标签分别配置的是什么意思,其实就是分别对应虚拟的逻辑库和真实的物理库,物理库就是数据库中必须真实有这个数据库。经过我在数据库真实创建了destdb这个库,以及库下再放几张表,这个问题就解决了!

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT-NSD

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值