首批通过分布式安全可靠测评,为关键业务系统打造
OBProxy 修改 proxyro@sys 用户密码后,代理连接报错 reading authorization packet
更新时间:2026-01-15 08:21
问题描述
通过 OBD 部署了 OBServer 集群和 OBProxy 服务,再使用 OCP 接管集群。由于 OBProxy 不支持 OCP 接管,所以使用 OCP 部署新的 OBProxy 并关联到当前集群。关联前登录数据库修改过 proxyro 用户的密码。代理连接集群报错,错误信息如下。
ERROR 2013 (HY000): Lost connection to MySQL server at 'reading authorization packet', system error: 2
适用版本
OBProxy V4.x 版本。
OceanBase 数据库 V4.x 版本。
问题原因
OBServer 和 OBProxy 两个服务中 proxyro 用户密码不一致导致的。
解决方法
通过 OCP 部署 OBProxy 时,需要录入 proxyro@sys 密码信息,但是 V4.x 版本的 OBProxy 使用的是默认密码。录入的密码信息会在选择部署版本时校验并屏蔽掉,如下图。

因此如果之前修改过 proxyro@sys 的密码,就会出现无法登录租户的问题。
登录失败的原因主要如下:
通过 root@proxysys 租户登录查看 proxyro 密码信息,执行如下查询语句。
select * from proxy_config where name like '%password%';
输出结果如下:

上图中黄色框起来的是部署 OBProxy 关联集群时,默认的集群级别 proxyro 密码。红色下划线部分是 OBServer 中 proxyro 的密码。两者不一致会出现登录失败问题。
登录失败时,OBProxy 日志会提示失败原因,proxyro 密码验证不通过,日志信息如下。

可以通过以下方法解决问题:
通过 OCP 操作界面在 OBProxy 集群中解除关联的 OBServer 集群连接。

通过 OCP 操作界面,找到对应的 OBServer 集群,在 SYS 租户下的用户管理中修改 proxyro 的密码。

通过 OCP 操作界面,在 OBProxy 集群中重新关联相应的 OBServer 集群连接。
当 OBProxy 集群已关联 OBServer 集群连接,之后再登录 proxysys 查看 proxyro 密码信息,显示密码是一致的,登录租户也是正常的。
