oceanbase obproxy怎们使用

【 使用环境 】生产环境 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

这将帮助我们了解您的集群配置和环境状态。

为了更好地帮助您,请提供以下信息:

  1. 您是否已经尝试过上述连接命令?
  2. 在尝试连接时是否收到任何错误消息?如果有,请分享具体的错误信息。
  3. 您使用的 obproxy 版本是什么?
  4. 您是如何安装和配置 obproxy 的?是否有任何特殊的配置选项被设置?
  5. 如果可能的话,能否提供 obproxy 的日志片段,特别是那些与连接尝试相关的部分?

更多信息请查看:

  1. 登录 OceanBase 租户

附上敏捷诊断工具 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 不一致导致的。以下是可能的解决方案:

1. 检查 proxyro 用户是否存在

如果 proxyro 用户不存在,您需要使用 root@sys 用户通过直连的方式进入 OceanBase 数据库,并在 sys 租户下创建 proxyro 用户:

CREATE USER proxyro IDENTIFIED BY 'your_password';
GRANT SELECT ON *.* TO proxyro;

2. 检查 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 参数密码一致。

进一步排查

如果以上步骤仍然无法解决问题,请检查以下几点:

  • 确认 obproxy 的配置文件中 observer_sys_password 的设置是否正确。
  • 检查 obproxy 的日志文件,特别是 obproxy_diagnosis.log 文件,查看是否有其他错误信息。

如果您仍然遇到问题,请提供更多详细的日志信息,以便进一步诊断。

更多信息请查看:

  1. 使用 OBD 部署 ODP
  2. 通过命令行部署 ODP
  3. obproxy_diagnosis.log
  4. 用户密码错误,错误代码 ERROR 1045
  5. obproxy_error.log
  6. 基本操作
  7. 快速体验 OceanBase 社区版

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