【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】obproxy
【 使用版本 】
【问题描述】我部署了obproxy 端口时2883 2884 2885 我怎么才能通过obproxy登录我创建的租户 root@hmp呢
【复现路径】
【附件及日志】
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】obproxy
【 使用版本 】
【问题描述】我部署了obproxy 端口时2883 2884 2885 我怎么才能通过obproxy登录我创建的租户 root@hmp呢
【复现路径】
【附件及日志】
【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
您的问题看起来与连接配置有关,但并没有直接指向一个具体的故障或异常情况。因此,这里更适合讨论如何正确地通过 obproxy 连接到您的 OceanBase 租户。不过,如果您遇到了任何连接失败或其他具体问题,请告知我们以便为您提供更精确的帮助。
根据您的描述,您想要知道如何通过 obproxy 使用正确的连接字符串来登录您创建的租户 root@hmp
。首先确保您使用的连接字符串格式正确,并且指定了正确的端口。
连接示例:
mysql -h 主机IP -P 2883 -u root@hmp -p '数据库密码' -D 默认数据库 -A -c --prompt "OceanBase(\u@\d)> "
这里 -P
后面的端口号应该是您实际使用的 obproxy 端口之一(2883, 2884, 2885 中的一个)。如果不确定哪个端口可用,您可以尝试每个端口直到成功连接。
如果在连接过程中遇到任何问题,例如连接失败、认证错误等,那么我们可以使用 obdiag
来收集相关信息以便进一步诊断。
由于当前没有明确的问题场景,暂时不需要执行 obdiag
的根因分析。但是,如果您遇到了连接问题,可以考虑使用以下命令来收集集群的基础信息:
日志采集场景: 集群基础信息
日志采集命令: obdiag gather scene run --scene=observer.base
这将帮助我们了解您的集群配置和环境状态。
为了更好地帮助您,请提供以下信息:
更多信息请查看:
附上敏捷诊断工具 obdiag 使用帮助链接
是否有修改过端口呢
试试黑屏化登录
mysql -hxxx.xxx.xx.xx -P2883 -uroot@hmp#集群名 -p -A -D
没有改端口[root@localhost log]# obclient -h127.0.0.1 -P2883 -u root@hmp#obcluster -p’zw12345678’ -Doceanbase -A
ERROR 2013 (HY000): Lost connection to MySQL server at ‘reading authorization packet’, system error: 11
2881 能的登录 2883 不行
127.0.0.1是本地ip。搭建一个使用网卡ip的集群进行proxy测试
使用ip也不行 obclient -h172.16.110.59 -P2883 -u root@hmp#obcluster -p’zw12345678’ -Doceanbase -A
ERROR 2013 (HY000): Lost connection to MySQL server at ‘reading authorization packet’, system error: 11
执行这个命令obproxy会报这个错误[2024-10-10 17:59:57.950344] ERROR [PROXY] do_next_action (ob_client_vc.cpp:878) [14378][Y0-00001455B1E64710] [lt=0] [dc=0] proxyro@sys access denied, please check password(mysql_resp_->get_err_msg()=Access denied for user ‘proxyro’@‘xxx.xxx.xxx.xxx’ (using password: YES), retry_times_=0, ret=0)
[2024-10-10 17:59:57.950516] ERROR [PROXY] finish_task (ob_resource_pool_processor.cpp:331) [14378][Y0-00001455B1E64710] [lt=0] [dc=0] proxyro@sys access denied, and check observer version failed(cluster_name=obcluster, ER_ACCESS_DENIED_ERROR=1045, err_msg=Access denied for user ‘proxyro’@‘xxx.xxx.xxx.xxx’ (using password: YES), ret=0)
[2024-10-10 17:59:57.954226] ERROR [PROXY] do_next_action (ob_client_vc.cpp:878) [14378][Y0-00001455B1E64710] [lt=0] [dc=0] proxyro@sys access denied, please check password(mysql_resp_->get_err_msg()=Access denied for user ‘proxyro’@‘xxx.xxx.xxx.xxx’ (using password: YES), retry_times_=0, ret=0)
[2024-10-10 17:59:57.958188] ERROR [PROXY] do_next_action (ob_client_vc.cpp:878) [14378][Y0-00001455B1E64710] [lt=0] [dc=0] proxyro@sys access denied, please check password(mysql_resp_->get_err_msg()=Access denied for user ‘proxyro’@‘xxx.xxx.xxx.xxx’ (using password: YES), retry_times_=0, ret=0)
根据您提供的信息,您在尝试通过 obproxy 连接到 OceanBase 时遇到了 ERROR 2013 (HY000): Lost connection to MySQL server at 'reading authorization packet', system error: 11
的错误。同时,obproxy 的日志中出现了 proxyro@sys access denied
的错误信息。这通常意味着 obproxy 无法通过 proxyro
用户与 OBServer 节点建立通信。
根据文档 [1]和 [2],这个问题可能是由于 proxyro
用户不存在或者其密码与 ODP 的配置项 observer_sys_password
不一致导致的。以下是可能的解决方案:
proxyro
用户是否存在如果 proxyro
用户不存在,您需要使用 root@sys
用户通过直连的方式进入 OceanBase 数据库,并在 sys 租户下创建 proxyro
用户:
CREATE USER proxyro IDENTIFIED BY 'your_password';
GRANT SELECT ON *.* TO proxyro;
proxyro
用户的密码是否正确如果 proxyro
用户存在,但密码不正确,您可以通过以下两种方式之一来解决:
修改 proxyro
用户的密码:
ALTER USER proxyro IDENTIFIED BY 'correct_password';
使用 root@proxysys
账号登录 ODP 并修改 proxyro@sys
的密码:
alter proxyconfig set observer_sys_password = 'correct_password';
修改后需要重启 ODP。
password
需要填写密码的原始值,而非 sha1 后的值。proxyro
用户的密码与启动 ODP 时设置的 observer_sys_password
参数密码一致。如果以上步骤仍然无法解决问题,请检查以下几点:
observer_sys_password
的设置是否正确。obproxy_diagnosis.log
文件,查看是否有其他错误信息。如果您仍然遇到问题,请提供更多详细的日志信息,以便进一步诊断。
更多信息请查看:
(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)