本帖最后由 柯子 于 2021-7-13 09:31 编辑
情况说明:Java项目使用mysql数据库,连接池选择的是druid,中间件使用mycat做读写分离。目前遇到问题,在项目中做查询时,会报如下错误:
[Shell] 纯文本查看 复制代码 Can not read response from server. Expected to read 4 bytes, read 0 bytes before connection was unexpectedly lost.
在Navicat中直接查询信息则更简单:Lost connection to mysql server during query;
使用了递归的sql都会报这个错,其余sql正常,以下是问题sql:
[SQL] 纯文本查看 复制代码 SELECT id from qypt_merchant where uid in
(
SELECT user_id from sys_org_user where org_id in(
with RECURSIVE p2c as(
select so.org_id from sys_org so where so.org_id = #{orgId}
union
select c.org_id from sys_org c, p2c where c.parent_id = p2c.org_id
)
select * from p2c
)
)
奇怪的点在于,项目或者Navicat中直接连接mysql是不会报错的,但是一旦使用mycat去连接,就一定报错!!!
已经百度查过,设置相关过期时间等、删除group by规则、更换驱动版本皆无效,恳请大佬们看清后再回复。
已经一天了 还是没头绪解决。。。 |