部署在已有数据库部署ocp是,metadb连接失败

【 使用环境 】 测试环境
【 OB or 其他组件 】 ocp
【 使用版本 】4.3.4
【问题描述】

【复现路径】重新尝试odb web还是报错
使用命令部署ocp启动报错
【附件及日志】
2025-03-28 09:13:14,349 ERROR new_internal_server_error_exception (response_utils.py:48) [1f322f3cf2404f17a1a102ed72e39394] got internal server error exception: Traceback (most recent call last):
File “service/handler/rsa_handler.py”, line 38, in decrypt_private_key
File “base64.py”, line 87, in b64decode
binascii.Error: Incorrect padding

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “service/api/v1/metadb.py”, line 39, in create_metadb_connection
File “service/handler/metadb_handler.py”, line 892, in create_connection_info
File “service/handler/rsa_handler.py”, line 44, in decrypt_private_key
Exception: rsa decryption an exception occurred: Incorrect padding

【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!

根据您提供的信息,部署 OCP 时 MetaDB 连接失败的问题可能与以下原因相关。以下是排查和解决问题的步骤:


1. 检查 MetaDB 配置信息是否正确

根据文档片段 4 的描述,OCP 使用 MetaDB 存储元信息及监控数据。在填写 OceanBase 数据库连接信息时,请确保以下参数配置无误:

  • 主机 IP:数据库访问 IP 地址。
  • 访问端口:数据库连接访问端口(默认为 2883)。
  • 访问账号:仅支持 sys 租户,默认为 root@sys,也可以自定义。
  • 访问密码:对应访问账号的密码。

如果配置有误,请返回配置页面进行修改,并重新验证连接。


2. 验证 MetaDB 是否可正常连接

根据文档片段 9 的描述,可以通过命令行工具 obclient 测试 MetaDB 的连接性。执行以下命令:

obclient -h <MetaDB_IP> -P <MetaDB_Port> -u<用户名>@<租户名称#集群名称> -p
  • 替换 <MetaDB_IP><MetaDB_Port><用户名><租户名称#集群名称> 为实际值。
  • 如果需要密码,系统会提示输入。

如果连接失败,请检查:

  • MetaDB 服务是否启动。
  • 网络连通性是否正常。
  • 账号权限是否正确。

3. 检查日志中的错误信息

从您提供的日志中可以看到以下关键错误信息:

binascii.Error: Incorrect padding
Exception: rsa decryption an exception occurred: Incorrect padding

这表明 RSA 解密过程中出现了填充错误,可能是由于私钥格式不正确或加密数据损坏导致的。

排查步骤:

  • 确认私钥文件是否正确:检查用于解密的私钥文件是否完整且未被篡改。
  • 检查加密数据格式:确保加密数据符合 Base64 编码规范。
  • 重新生成密钥对:如果怀疑密钥文件有问题,可以尝试重新生成密钥对并重新配置。

4. 参考 OCP 预检查流程

根据文档片段 1 和文档片段 2 的描述,在安装 OCP 时会进行环境预检查。如果 MetaDB 连接失败,通常会在预检查阶段报错。您可以:

  • 单击 重新检查 按钮,重新执行环境预检查程序。
  • 查看预检查报告,定位具体的失败原因。

5. 其他可能的原因

  • 网络问题:确保 OCP Server 和 MetaDB 之间的网络连通性正常。
  • 权限问题:确认 MetaDB 用户具有足够的权限。
  • 版本兼容性:确保使用的 OceanBase 数据库版本与 OCP 版本兼容。

6. 联系技术支持

如果以上方法仍无法解决问题,建议联系 OceanBase 技术支持团队获取进一步帮助。同时,可以提供以下信息以便更快定位问题:

  • 完整的日志文件。
  • MetaDB 的配置信息(脱敏后)。
  • OCP 和 OceanBase 的具体版本号。

希望以上步骤能帮助您解决 MetaDB 连接失败的问题!如果仍有疑问,请随时反馈。

检索到的文档如下:

  1. 使用图形化界面部署 OCP
  2. 使用图形化界面升级 OCP
  3. 使用限制
  4. 升级常见问题
  5. 卸载 OCP
  6. OCP 系统常见问题
2 个赞

已尝试过2891与root@sys可正常连接,此数据库是新部署的 OceanBase_CE 4.2.5.2

根据您的补充信息,您已经确认可以通过 root@sys 用户正常连接到新部署的 OceanBase 社区版 4.2.5.2 数据库。但 OCP 在连接 MetaDB 时仍然失败。以下是进一步排查和解决问题的方向:


1. 确认 OCP 版本与 OceanBase 数据库版本兼容性

OCP 的某些功能可能依赖于特定版本的 OceanBase 数据库。根据文档片段 4 和文档片段 7 的描述,部分错误码是从 V3.2.4 或 V4.1.0 开始引入的。因此,请确保:

  • 您使用的 OCP 4.3.4 版本支持 OceanBase 社区版 4.2.5.2。
  • 如果版本不兼容,建议升级或降级 OCP 至匹配的版本。

2. 检查 OCP 配置文件中的 MetaDB 连接信息

即使您可以手动通过 obclient 工具连接数据库,OCP 的配置文件中可能存在不一致的设置。请检查以下内容:

  • 配置文件路径:通常位于 OCP 安装目录下的 conf 文件夹中。
  • 关键参数
    • metadb_host:MetaDB 的主机地址。
    • metadb_port:MetaDB 的端口号(默认为 2883)。
    • metadb_user:MetaDB 的用户名(如 root@sys)。
    • metadb_password:MetaDB 的密码。

如果发现配置不正确,请修改后重启 OCP 服务。


3. 验证 MetaDB 用户权限

虽然您可以通过 root@sys 用户连接数据库,但 OCP 可能需要额外的权限来操作 MetaDB。请确保以下权限已授予:

  • 创建表和索引:OCP 需要在 MetaDB 中存储元数据。
  • 读写权限:OCP 需要对 MetaDB 中的表进行增删改查操作。

执行以下 SQL 命令以授予必要权限:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '<password>';
  • 替换 <password> 为实际密码。
  • 如果仅允许从特定 IP 访问,将 '%' 替换为具体的 IP 地址。

4. 检查 OCP 的日志文件

除了您提供的日志片段外,还可以查看 OCP 的完整日志文件以获取更多上下文信息。日志文件通常位于以下路径:

  • /var/log/ocp/ 或安装目录下的 logs 文件夹。

重点关注以下内容:

  • 是否存在其他与 MetaDB 连接相关的错误信息。
  • 是否有网络超时或权限拒绝的提示。

5. 重新初始化 MetaDB

如果以上步骤仍未解决问题,可以尝试重新初始化 MetaDB。具体步骤如下:

  1. 停止 OCP 服务
    systemctl stop ocp-server
    
  2. 删除现有 MetaDB 数据
    • 登录到 OceanBase 数据库,删除 OCP 使用的 MetaDB 表空间或租户。
  3. 重新配置 MetaDB
    • 在 OCP 配置文件中重新指定 MetaDB 的连接信息。
  4. 启动 OCP 服务
    systemctl start ocp-server
    

6. 联系技术支持

如果问题依然无法解决,建议联系 OceanBase 技术支持团队,并提供以下信息:

  • OCP 和 OceanBase 的版本号。
  • 完整的日志文件。
  • MetaDB 的配置信息(脱敏后)。

希望以上步骤能够帮助您解决问题!如果仍有疑问,请随时反馈。

检索到的文档如下:

  1. 0001 ~ 3999
  2. 7000 ~ 7999

(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)

1 个赞

你试一下使用obproxy的端口

2 个赞

没用部署这个,我是采用直连的方式

别坑我啊,部署了最新的obd现在准备部署ocp却出现这个问题,

1 个赞

我感觉跟助手回答的有点关系,好像跟rsa解密程序有关系

1 个赞

obd --version版本确认下 期间有个版本有类似ras解析问题,可以使用最新的obd312版本再看下。

1 个赞

image
已经是最新的了

~/.obd/app.log 和 ~/.obd/log/obd 日志麻烦提供下。

1 个赞

app.log (1.9 MB)
obd.log (345.2 KB)
拜托了


还想问一下这个是什么问题

清理缓存,浏览器重新打开,设置无痕模式试下正常吗?