The content of element type "mycat:schema" must match "(schema*,dataNode*,dataHost*)"错误解决办法

今天在配置使用mycat时遇到The content of element type "mycat:schema" must match "(schema*,dataNode*,dataHost*)"错误,

根据wrapper.log日志信息,开始以为是我的schema.xml文件中的schema、dataNode、dataHost标签写得不正确,反复查看后没有发现问题,

但是问题依旧存在,后来经过一番折腾之后,发现这句话的意思其实是:schema、dataNode、dataHost标签在schema.xml文件中,必须按照顺序书写。

其实就是说多个schema需要写在一起,并且放在最前面;多个dataNode写在一起,放在schema标签之后;多个dataHost写在一起,放在dataNode标签之后。如下方式:

schema1

schema2

...

dataNode1

dataNode2

...

dataHost1

dataHost2

...


如上方式书写schema.xml配置文件即可。其实还是语言理解上面的问题。哈哈,又遇见的朋友可以参考一下试试,有问题欢迎指正。

以下是一个 MyCATschema 配置示例: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schema xmlns:mycat="http://www.mycat.org/schemas/mycat-schema.dtd"> <!-- 定义数据源 --> <dataHost name="host1" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <writeHost host="hostM1" url="jdbc:mysql://hostM1:3306" user="root" password="123456"/> <readHost host="hostS1" url="jdbc:mysql://hostS1:3306" user="root" password="123456"/> </dataHost> <!-- 定义数据源组 --> <dataHost name="group1" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <writeHost host="hostM1" url="jdbc:mysql://hostM1:3306" user="root" password="123456"/> <readHost host="hostS1" url="jdbc:mysql://hostS1:3306" user="root" password="123456"/> <readHost host="hostS2" url="jdbc:mysql://hostS2:3306" user="root" password="123456"/> </dataHost> <!-- 定义逻辑库 --> <schema name="testdb" checkSQLschema="false" sqlMaxLimit="100"> <table name="t_order" dataNode="dn1,dn2"/> </schema> <!-- 定义数据节点 --> <dataNode name="dn1" dataHost="group1" database="db1" /> <dataNode name="dn2" dataHost="host1" database="db2" /> </mycat:schema> ``` 在这个示例中,我们定义了一个 MyCATschema,其中包含了数据源、数据源组、逻辑库和数据节点等元素。具体来说: - 我们定义了两个数据源 `host1` 和 `group1`,它们都是 MySQL 数据库。 - `host1` 中包含了一个写数据节点 `hostM1` 和一个读数据节点 `hostS1`。 - `group1` 中包含了一个写数据节点 `hostM1` 和两个读数据节点 `hostS1` 和 `hostS2`。 - 我们定义了一个逻辑库 `testdb`,其中包含了一个表 `t_order`,该表分别对应了数据节点 `dn1` 和 `dn2`。 - 我们定义了两个数据节点 `dn1` 和 `dn2`,它们分别对应了数据源组 `group1` 和数据源 `host1` 中的数据库。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值