首批通过分布式安全可靠测评,为关键业务系统打造
OCP 接管 OB 集群:“OBProxy proxyro 用户密码与 OCP 设置不相同”
更新时间:2026-07-08 08:01
本文为您介绍 OCP 接管 OB 集群:“OBProxy proxyro 用户密码与 OCP 设置不相同”的解决方法。
适用版本
OceanBase 云平台(OceanBase Cloud Platform,OCP) V4.0.1之前的版本(不包括OCP 4.0.1)及 OBProxy 4.x 之前的版本。
问题现象
OCP 接管 OB 集群时报错:“OBProxy proxyro 用户密码与 OCP 设置不相同”
问题原因
黑屏部署或者通过 OCP 白屏创建的每个业务OB集群都会在 sys 租户下创建一个 proxyro 用户:
MySQL [oceanbase]> select user from mysql.user;
+------------+
| user |
+------------+
| root |
| ORAAUDITOR |
| proxyro |
+------------+
3 rows in set (0.002 sec)
OBProxy 会利用该 proxyro 用户连接到对应的业务 OceanBase 集群中去。 OCP 现在要求所有 OceanBase 集群的 proxyro 用户密码一致。如果待接管的 OceanBase 集群的 proxyro 用户密码和现存的不一致,则会出现该报错。
解决方法
在 OCP 接管集群之前,需要确认待接管集群中的 proxyro 如何没有设置密码或者设置了密码,都需将 OCP 中的 proxyro 密码修改为待接管集群中的 proxyro 用户的密码,原因是目前的OCP内部使用的obproxy对应的proxyro用户密码是一个固定的密码。 可以使用下面的curl命令来更新这些密码:
curl --user <user>:<pass> -X POST "http://<ip>:<port>/api/v2/obproxy/password" -H "Content-Type:application/json" -d '{"username":"proxyro","password":"xxx"}'
| 参数 | 说明 |
|---|---|
| ip | OCP 的 IP。 |
| port | OCP 的端口。 |
| user | OCP 的用户,要求调用的用户需要有 admin 权限。 |
| pass | OCP 的密码。 |
| -d | 参数后面的 password 为待接管集群的 proxyro 用户的明文密码。 |
该操作会生成一个运维任务,将 OCP 中现有 Oceanbase 集群的 proxyro 密码修改,同时修改 OBProxy 集群对应的配置。您需等运维任务成功结束后才可进行后述步骤,如果任务失败,则需要重试并将任务执行成功之后才能执行后面的接管步骤。
说明
OCP V4.0.1及以后的版本如果依旧报错,检查 OB 集群中 sys 租户下 proxyro 用户的密码和 OCP 密码箱中保存的 proxyro 用户的密码是否一致,如果不一致,修改为一致的。