项目场景:
从mycat中根据一个a_id去查询另一个b_id
问题描述
navicat可以正常连接mycat以及对应的mysql,查询数据没有问题,程序执行,在执行查询的时候,项目报错连接失败
The last packet successfully received from the server was 5 milliseconds
Communications link failure
按照网上一些修改数据库连接池配置、mysql连接超时设置、甚至同步服务器的时间,都没有解决这个问题
原因分析:
由于是连接的mycat,于是我想看一下mycat的日志,看看有没有什么异常,于是,发现了mycat日志里面的报错
can't get connection for sql :select user()
这个问题一般是由于数据库用户密码设置错误导致,但是我查看mycat配置没有问题,直到下面这个问题
can't connect to mysql server ,errmsg:Unknown database 'db3' MySQLConnection
看到这里我大概猜到了,因为mysql的连接中只有两个库,没有什么db3,我猜想是由于mycat的配置文件中配置了没有的库,查看schema.xml配置文件,果然发现
于是将这些配置注释,重启mycat,问题解决。