复古 护眼 海天 深邃 暗黑 默认

常见问题

本页按用户侧现象整理 ShardingSphere-MCP、AI 应用集成、数据库连接、元数据查看、查询和规则变更的排查方法。 功能插件的规则规划、执行和校验问题,请查看对应功能插件文档。 排查时先区分外部环境和 MCP 保护机制:数据库服务、账号权限、网关转发和 AI 应用配置需要在对应系统处理;MCP 会通过错误分类和运行时保护信息帮助定位问题。 如果尚未完成部署后的基础检查,请先参考部署说明中的健康检查和基础可观测入口,再继续按本页症状定位。

问题列表

现象 可能原因 处理方式
MCP Server 启动失败 Java 版本、配置文件路径、发行包目录或 YAML 必填字段不正确。 查看启动终端和 logs/mcp.log;确认使用 Java 21 及以上版本,配置文件存在,发行包 lib/ 目录完整,并且 runtimeDatabases 至少配置一项运行时数据库。
AI 应用无法连接 ShardingSphere-MCP 传输方式、端口、端点路径、绑定地址或 AI 应用中的 MCP Server 配置不一致。 检查 transport.typeportendpointPathbindHost,并确认 AI 应用使用相同的连接地址。
HTTP 远程访问失败或请求被拒绝 HTTP 绑定地址、Origin 请求头、反向代理、网关转发或会话归属配置不符合安全策略。 本机调试使用回环地址;远程访问放在受控网关或反向代理后面;检查网关是否转发了期望的请求头;详细原因看服务端日志。
STDIO 模式没有响应 STDIO 被当作命令行交互入口,或 AI 应用没有正确拉起 MCP 进程。 由 AI 应用拉起 ShardingSphere-MCP;诊断信息看 stderr 或 logs/mcp.log
看不到数据库或逻辑库 runtimeDatabases 中的名称不正确、连接失败、权限不足,或目标范围确实为空。 读取当前可见数据库;如果返回连接错误分类,按下方连接错误分类处理;确认账号拥有元数据读取权限。
查不到表、列或索引 连接目标不同、模式或命名空间不正确、账号权限不足,或 Proxy 可见逻辑元数据与底层物理库不同。 先确认连接的是 ShardingSphere-Proxy 还是数据库直连,再检查模式、命名空间、账号权限和 Proxy 可见元数据。
查询被拒绝 SQL 不属于只读查询,或包含锁定读、修改数据、修改结构、修改权限、事务控制等副作用。 只读任务使用查询语句;涉及副作用的任务先要求预览变更,再确认是否执行。
查询执行失败或结果被截断 SQL 语法、目标对象、权限、返回行数或超时限制不正确。 先查看表结构;缩小查询条件、减少返回列、降低返回行数;必要时调整超时时间。
副作用 SQL 无法执行 修改类 SQL 未经过预览和确认,或当前账号没有执行权限。 先预览变更 SQL,审查影响范围,再确认执行;权限问题需要管理员处理。
规则变更计划或校验失败 连接目标不是 ShardingSphere-Proxy、目标列不可见、算法不可用、参数不足、规则未执行成功,或人工执行包尚未完成。 确认 runtimeDatabases 指向 Proxy 逻辑库;按功能插件文档补充规则目标、算法和参数;人工执行后再校验。

补充说明:

  • usernamedriverClassName 必须显式写出且不能为空;无密码账号可以省略 password 或写 ""
  • runtimeDatabases 是启动必填项,至少需要配置一项运行时数据库。
  • 查询默认最多返回 100 行,单次查询最多可请求 5000 行;查询超时最大可请求 300000 毫秒。
  • 人工执行包中的密钥占位符应由执行人员在受控环境替换。
  • ShardingSphere-MCP 不获取真实敏感值,真实敏感值也不应进入 AI 应用;如果规则变更需要密钥或凭证,应在 MCP 和 AI 应用之外的受控环境中替换人工执行包里的中性占位符。
  • 开发者需要排查协议请求时,可参考自研集成附录

连接错误分类

当运行时数据库或 ShardingSphere-Proxy 连接失败时,MCP 响应会返回连接错误分类,用于帮助定位问题。分类只描述失败原因,不暴露 JDBC URL、密码、环境变量或堆栈信息。

分类 含义
missing_jdbc_driver 未找到配置的 JDBC 驱动。
authentication_failed 用户名或密码认证失败。
authorization_failed 当前账号没有访问目标数据库或元数据的权限。
connection_timeout 连接超时,通常需要检查地址、端口、网络或超时设置。
invalid_configuration 运行时数据库配置不完整或不一致。
database_unavailable 目标数据库或 ShardingSphere-Proxy 当前不可用。
connection_failed 连接失败,但无法归类为更具体的原因。
database_not_visible 指定数据库或逻辑库对当前连接不可见。

运行时保护

保护项 含义 处理方式
查询返回行数 默认最多返回 100 行,单次最多请求 5000 行。 查询结果被截断时,缩小查询条件、减少返回列或降低返回行数。
查询超时 单次查询最大可请求 300000 毫秒超时。 超时后缩小查询范围,或在合理范围内调整超时时间。
工具调用次数 当前 MCP 会话达到工具调用次数保护限制时,会返回 tool_call_limit_exceeded 结束当前会话并重新创建 MCP 会话。
副作用执行 修改数据、结构、规则、权限或事务状态前需要预览和确认。 先审查预览内容,再决定是否执行。

提供给管理员或排障人员的信息

报告问题时建议提供:

  • 启动命令。
  • MCP 配置文件,注意移除密码、密钥和令牌。
  • 传输方式和端点。
  • AI 应用中的 MCP Server 配置摘要。
  • 用户输入的自然语言任务。
  • 错误响应内容,包含错误分类和提示信息。
  • logs/mcp.log 中相关错误。