今天在学习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>
兜兜转转几天,最后还是自己去翻别的博客找到解决方法,写一下希望对别人有帮助 。
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
需要配置schema.xml文件,
配置逻辑库和物理库的映射关系,以及支撑MyCat访问到物理数据库的相关信息。
您好,我是问答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~