DataGrip2023.3.2连接ShardingSphere Proxy(MySQL8.0.28)无法显示表求助
解决方案
1. 调整SQL联邦模式(核心修复)
修改ShardingSphere Proxy的配置文件,将sql-federation-type从ADVANCED改为NONE:
localProxyServer: authority: users: - user: test password: 123456 privilege: type: ALL_PERMITTED props: sql-federation-type: NONE
修改完成后重启ShardingSphere Proxy服务,再重新连接DataGrip即可正常查看表。
原因:ADVANCED模式下,ShardingSphere对MySQL 8.x的INFORMATION_SCHEMA.ROUTINES元数据查询做联邦计算时,无法正确处理排序逻辑,触发Unable to implement EnumerableSort错误。禁用SQL联邦模式可绕过该兼容问题。
2. 优化DataGrip元数据查询设置
如果不想关闭SQL联邦,可在DataGrip中调整元数据获取规则:
- 打开DataGrip的连接配置,切换到「Advanced」标签页
- 找到「Retrieve routines」选项,取消勾选,避免客户端触发
INFORMATION_SCHEMA.ROUTINES查询 - 保存配置后刷新数据库连接
3. 升级ShardingSphere Proxy版本
ShardingSphere 5.3.2存在MySQL 8.0.x系列的元数据查询兼容bug,升级至5.4.0及以上版本可修复该问题,同时保留SQL联邦功能。
4. 验证驱动一致性
确保ShardingSphere Proxy使用的mysql-connector-java版本与DataGrip客户端完全一致(当前均为8.0.28,此步骤可跳过,若后续出现其他问题可重新确认)。
问题背景回顾
- 连接适配MySQL 8.0.28的ShardingSphere Proxy 5.3.2时,DataGrip/DBeaver连接成功但无法显示表,报错
Unable to implement EnumerableSort - 连接适配MySQL 5.7.43的同版本Proxy可正常显示表
- 环境:MySQL 8.0.28、ShardingSphere Proxy 5.3.2、DataGrip 2023.3.2,驱动均为mysql-connector-java-8.0.28.jar
内容的提问来源于stack exchange,提问作者xiaoche
相关产品推荐
相关产品推荐

