创建广播表读取和写入正常。创建分片表如果在物理库直接插入数据逻辑库读取是正常的,但无法在逻辑库写入数据。用命令行方式分片表逻辑库写入数据的报错。我错在哪里?该如何解决?
请提供下mycat的配置。不知道是读写分离配置的问题还是路由配置的问题。
应该要检查Mycat2的分片规则,确保分片表的逻辑库能够正确的路由到正确的物理库。
检查Mycat2的分片表的逻辑库的表结构,确保表结构正确,并且能够正确的路由到正确的物理库。
看错误提示非法的参数,检查下你是怎么写去的数据啊,写入的方法中的参数对不对啥的。
按照我的步骤检查一下
1、检查Mycat2的配置文件,确保分片表的逻辑库配置正确,并且可以正常读写。
2、检查Mycat2的权限配置,确保分片表的逻辑库有正确的读写权限。
3、检查Mycat2的分片规则,确保分片表的逻辑库能够正确的路由到正确的物理库。
4、检查Mycat2的分片表的逻辑库的表结构,确保表结构正确,并且能够正确的路由到正确的物理库。
有用请采纳:
可能是由于你在使用分片表时,路由计算返回了两个结果,导致程序无法确定该将数据写入哪个分片。可能是由于配置文件中的路由策略配置错误或分片键值重复导致的。
检查一下路由策略配置是否正确,并确保分片键值唯一。还要检查分片表对应的逻辑库是否存在,如果不存在,需要创建。
全局表不会计算路由,写入的时候是将所有节点都执行一遍写入,读取的时候从其中一个节点进行读取,所以不会有问题。
分片表在写入和读取的时候会计算路由,这个错误提示可能是由于你在使用分片表时,路由计算返回了两个结果,导致程序无法确定该将数据写入哪个分片,可能是由于配置文件中的路由策略配置错误或分片键值重复导致的。建议检查路由策略配置是否正确,并确保分片键值唯一。还要检查分片表对应的逻辑库是否存在,如果不存在,需要创建。
主要是检查rules文件的配置是否有问题。
如果有用,望采纳,谢谢!