ALonelyLemon 2021-03-26 16:00 采纳率: 100%
浏览 215
已采纳

Mycat的逻辑库名是否必须与实际库名一致?

今天在学习mycat时出现了一个问题,当我的逻辑库名与实际库名不一致时,可以使用SQLyog连接库但打不开表。

然后我在mycat服务器端进行了测试,发现当我使用“逻辑库名.表”的形式进行操作时就会出错,然后找到一篇博客

https://blog.csdn.net/wangxuelei036/article/details/107655724

于是我将连接库名与实际库名改为互相一致,一切变得看似正常,但我觉得我没有实际的解决问题,逻辑库名不应当是无用的,当逻辑库中存在多个节点时,可能这个方法就不能解决问题了。

所以想请教一下大佬,我是否存在关键的配置项没有配置?

这是我的配置文件

<?xml version="1.0"?>
<!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="test" />     
	<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.8.135:3306" user="root"  password="1"/>
				<!-- can have multi read hosts -->
				<readHost host="hostS2" url="192.168.8.139:3306" user="repuser" password="1" />
		</writeHost>
	</dataHost>
</mycat:schema>
  • 写回答

3条回答 默认 最新

  • ALonelyLemon 2021-03-31 14:29
    关注

    兜兜转转几天,最后还是自己去翻别的博客找到解决方法,写一下希望对别人有帮助 。

    schema 的配置项目checkSQLschema改为true,mycat在将命令发送到数据库时会去掉表示schema的字符,防止doesn't exist发生,这样就可以使用逻辑库名访问,但因为对配置文件了解不够深入尚不清楚是不是会引起其他的问题。

    <?xml version="1.0"?>
    <!DOCTYPE mycat:schema SYSTEM "schema.dtd">
    <mycat:schema xmlns:mycat="http://io.mycat/">
    	<schema name="TESTDB" checkSQLschema="true" sqlMaxLimit="100" dataNode="dn1">     
    <!--这里checkSQLschema由false改为了true,然后可以使用逻辑库名连接-->
    	</schema>
    	<dataNode name="dn1" dataHost="host1" database="test" />     
    	<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.8.135:3306" user="root"  password="1"/>
    				<!-- can have multi read hosts -->
    				<readHost host="hostS2" url="192.168.8.139:3306" user="repuser" password="1" />
    		</writeHost>
    	</dataHost>
    </mycat:schema>

    方案来自文章:https://www.jianshu.com/p/7a61ee730cce

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?