mycat连接管理数据库,操作表时报ERROR 3009 (HY000): java.lang.IllegalArgumentException: Invalid DataSource:0

场景:

mycat分表工具简单实用,但是就在今天实际操作的过程中遇到了一个小问题,整整弄了一天才弄出来,错误的信息就是这:

ERROR 3009 (HY000): java.lang.IllegalArgumentException: Invalid DataSource:0

网上看了一大堆资料,大部分说的都是scheme.xml配置的不对,我检查了半天十分确定没问题。后来就一直思考,再服务器端进行连接的时候:

mysql -uuser -puser -h192.168.242.128 -P8066 -Dlpf

【1】这两个是逻辑库的用户和密码,就是service.xml中配置的用户信息,通过连接这个逻辑库操作数据,从而使得物理库数据发生变化。

【2】这个是mycat安装的服务器地址

【3】-P就是连接逻辑,P一定要大写哦

【4】-D是指定连接哪个数据库

解决思路:

从报错的字面意思上就是数据源找不到,也就是说配了那几个节点有某个,或某几个没找到,但是好好看了下配置文件xml中的确是没错,又想show tables不会报错,只有在insert select 这些操作的时候报这个错,这就得出一个结论,肯定某个服务器上不存在要操作的这张表,的确是在其中一台服务器上少了这张表。(PS:这种可能性应该不会发生,因为在逻辑库建表的时候素有的物理库上应该会同时建好同样的表。为了再次验证,我把是两台服务器三个数据库的表全部删掉,重新配置逻辑库,同时创建表,突然发现三个库里面同时有了表,这就有点坑爹呀,为什么第一次没创建成功这就不知道了)

解决方法:

【1】删掉所有库上的表,重新配置逻辑库,生成表。一定要去物理库中检查下是否创建表成功了。

【2】在没有生成表的服务器对应的库中手动创建表。

部分截图:

 

mycat连接管理数据库,操作表时报ERROR 3009 (HY000): java.lang.IllegalArgumentException: Invalid DataSource:0_第1张图片

注意:端口为8066,8099是管理端的。用户名和密码是server.xml中配置的用户名和密码

具体的操作文档,网上一大把,在这我就不写了

 

 

 

你可能感兴趣的:(mysql)