启动observer和obproxy后,通过obproxy连接不成功

【 使用环境 】测试环境
【 OB or 其他组件 】
【 使用版本 】4.3.3
【问题描述】启动observer和obproxy后,通过obproxy连接不成功
【复现路径】使用命令启动obproxy
bin/obproxy -r “172.16.1.69:2881” -p 2883 -o “enable_strict_kernel_release=false,enable_cluster_checkout=false,enable_metadb_used=false” -c obdemo
启动后使用命令连接obproxy连接不成功
obclient -h172.16.1.69 -uroot@proxysys -P2883 -p
[admin@oceanbase69 obproxy-4.3.1.0]$ obclient -h172.16.1.69 -uroot@proxysys -P2884 -p
Enter password:
ERROR 2013 (HY000): Lost connection to MySQL server at ‘handshake: reading initial communication packet’, system error: 11
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

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

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

推荐使用 obdiag 工具进行日志采集,并且将采集到的日志提供给我们以便确认问题所在。

日志采集场景: 集群无法连接
日志采集命令: obdiag gather scene run --scene=observer.cluster_down

另外,为了确定具体的问题,在此需要您提供一些信息:

  1. 您的 OceanBase 版本是多少?
  2. 您是否尝试过重新启动 obproxy 和 observer 服务?如果有,请告知重启后的结果。
  3. 您能否直接连接 observer 而不是通过 obproxy 进行连接?如果可以,请提供连接的结果。
  4. 您是否有任何网络防火墙或安全组规则可能阻止了 obproxy 与 observer 之间的通信?
  5. 您是否在 obproxy 和 observer 的配置文件中进行了任何更改?如果有,请提供具体的更改内容。

具体信息可参考以下文档:

  1. 0001 ~ 3999

附上敏捷诊断工具 obdiag 使用帮助链接

你上面用的2884是啥。使用2883试试



oceanbase版本是4.3.3
重启后服务启动成功,但是还是连接不成功

​通过observer连接诶是没有问题的,连接结果如图
[admin@oceanbase69 obproxy-4.3.1.0]$ obclient -h172.16.1.69 -uroot -P2881 -p -c -A
Enter password:
Welcome to the OceanBase. Commands end with ; or \g.
Your OceanBase connection id is 3221487620
Server version: OceanBase_CE 4.3.3.0 (r100000142024101215-0723f9774e5f77a1253149261ba75a94414625d0) (Built Oct 12 2024 15:58:11)

Copyright (c) 2000, 2018, OceanBase and/or its affiliates. All rights reserved.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

obclient [(none)]>
但是使用obproxy连接让然和之前一样的问题


​也灭有更改任何配置文件





LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:2881 0.0.0.0:* LISTEN 19379/bin/observer
tcp 0 0 0.0.0.0:2882 0.0.0.0:* LISTEN 19379/bin/observer
tcp 0 0 0.0.0.0:2883 0.0.0.0:* LISTEN 19356/bin/obproxy
tcp 0 0 0.0.0.0:2884 0.0.0.0:* LISTEN 19356/bin/obproxy
tcp 0 0 0.0.0.0:2885 0.0.0.0:*

[admin@oceanbase69 oceanbase]$ obclient -h172.16.1.69 -uroot@proxysys -P2883 -p
Enter password:
ERROR 1045 (42000): Access denied for user ‘root@proxysys’@‘172.16.1.69’ (using password: YES)
[admin@oceanbase69 oceanbase]$

根据您提供的信息,问题似乎出在 obproxy 的配置或权限设置上。错误 ERROR 1045 (42000): Access denied for user 'root@proxysys'@'172.16.1.69' (using password: YES) 表明 obproxy 在尝试连接到 observer 时,由于用户名或密码不正确而被拒绝。

解决步骤

  1. 检查 obproxy 配置

    • 确认 obproxy 的配置文件中没有错误的用户名或密码设置。
    • 检查 obproxy 的启动参数,确保 -r 参数中的地址和端口正确无误。
  2. 验证 observer 上的用户权限

    • 登录到 observer 并检查 root@proxysys 用户的权限。
    • 确保该用户有权限通过 obproxy 连接到 observer。
    obclient -h172.16.1.69 -uroot -P2881 -p -c -A
    

    运行以下 SQL 语句来检查用户权限:

    SELECT user, host FROM mysql.user WHERE user = 'root' AND host = '%';
    

    如果没有 root@% 用户,您可以创建一个:

    CREATE USER 'root'@'%' IDENTIFIED BY 'your_password';
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
    FLUSH PRIVILEGES;
    
  3. 检查 obproxy 日志

    • 查看 obproxy 的日志文件,通常位于 logs 目录下,查找连接失败的具体原因。
    tail -f logs/obproxy.log
    
  4. 重新启动 obproxy

    • 重新启动 obproxy 服务,确保配置生效。
    bin/obproxy -r "172.16.1.69:2881" -p 2883 -o "enable_strict_kernel_release=false,enable_cluster_checkout=false,enable_metadb_used=false" -c obdemo
    
  5. 验证连接

    • 再次尝试通过 obproxy 连接到 observer。
    obclient -h172.16.1.69 -uroot@proxysys -P2883 -p
    

总结

  • 确认 obproxy 的配置和启动参数。
  • 检查 observer 上的用户权限,确保 root@proxysys 用户有权限通过 obproxy 连接。
  • 查看 obproxy 的日志文件,查找连接失败的具体原因。
  • 重新启动 obproxy 服务并验证连接。

希望这些步骤能帮助您解决问题。如果问题仍然存在,请提供更多的日志信息以便进一步诊断。

具体信息可参考以下文档:

  1. 使用 ChunJun 从 MySQL 数据库迁移数据到 OceanBase 数据库
  2. 快速体验 OceanBase 社区版
  3. 单机在线转分布式部署
  4. 使用 ChunJun 从 OceanBase 数据库迁移数据到 MySQL 数据库
  5. 通过 OBClient 连接 OceanBase 租户
  6. 提交事务

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

密码错了,proxysys的
连sys租户试试

obclient -h172.16.1.69 -uroot@sys#集群名-P2883 -p

root@proxysys 是连接proxy的,当前应该是密码错误这个密码在yaml文件里有展示
想使用proxy连接ob用户名和租户名填ob的
例子 root@sys ;user@业务租户

[admin@oceanbase69 profile]$ obclient -h172.16.1.69 -uroot@sys#obdemo -P2883 -p
Enter password:
ERROR 2013 (HY000): Lost connection to MySQL server at ‘reading authorization packet’, system error: 11
[admin@oceanbase69 profile]$ obclient -h172.16.1.69 -uroot@sys#obdemo -P2883 -p
Enter password:
ERROR 2013 (HY000): Lost connection to MySQL server at ‘reading authorization packet’, system error: 11
[admin@oceanbase69 profile]$

[admin@oceanbase69 profile]$ obclient -h172.16.1.69 -uroot@sys#obdemo -P2883 -p
Enter password:
ERROR 2013 (HY000): Lost connection to MySQL server at ‘reading authorization packet’, system error: 11
[admin@oceanbase69 profile]$ obclient -h172.16.1.69 -uroot@sys#obdemo -P2883 -p
Enter password:
ERROR 2013 (HY000): Lost connection to MySQL server at ‘reading authorization packet’, system error: 11
[admin@oceanbase69 profile]$

obclient -h172.16.1.69 -uroot@sys#集群名-P2883 -p

使用proxy要带上集群名

root@proxysys 是obproxy的管理账户,看起来是密码问题

你按照楼上说的通过obproxy连接sys租户或者业务租户试下