通过obproxy访问集群报错ERROR 2013 (HY000)

【 使用环境 】测试环境
【 OB or 其他组件 】obproxy
【 使用版本 】4.2.1
【问题描述】通过obproxy连接集群的时候报错如下:
[admin@server3 ~]$ obclient -h192.168.56.103 -P2883 -uroot@tenant03#obtest -A -p
Enter password:
ERROR 2013 (HY000): Lost connection to MySQL server at ‘reading authorization packet’, system error: 11

通过obd cluster display obtest查看集群状态时,obproxy部分显示如下:
Connect to obproxy ok
obproxy-ce is empty.
obclient -h192.168.56.103 -P2883 -uroot@proxysys -p’q|M8Q17HQ!aCL35OX’ -Doceanbase -A

【复现路径】无特殊操作,正常进行租户相关表查询,中途终止查看相关文档,再次登录后报错。
通过下面命令单独启停obproxy后恢复正常
obd cluster stop obtest -c obproxy-ce
obd cluster start obtest -c obproxy-ce

Connect to obproxy ok
±-----------------------------------------------+
| obproxy-ce |
±-------------±-----±----------------±-------+
| ip | port | prometheus_port | status |
±-------------±-----±----------------±-------+
| 192.168.56.103 | 2883 | 2884 | active |
±-------------±-----±----------------±-------+
obclient -h192.168.56.103 -P2883 -uroot@proxysys -p’q|M8Q17HQ!aCL35OX’ -Doceanbase -A

1 个赞

试一下 这样连接
obclient -h192.168.56.103 -P2883 -uroot@sys#obtest -A -p
或者obclient -h192.168.56.103 -P2883 -uroot@proxysys -p’q|M8Q17HQ!aCL35OX’ -Doceanbase -A

2 个赞

看obproxy的日志报错内存不够用了:
[2025-04-15 16:15:26.686206] ERROR [PROXY] do_monitor_mem (ob_proxy_main.cpp:1097) [14381][Y0-00002B2BBC6601F0] [lt=0] [dc=0] obproxy’s memory is out of limit, will disable alloc memory from the OS(mem_limited=524288000, OTHER_MEMORY_SIZE=73400320, is_out_of_mem_limit=true, cur_pos=0)

部署的时候是通过obd-web部署的,看了下生成的配置文件:proxy_mem_limited: 500M
这是默认值吗,还是经过计算后得到的,生产环境的话什么建议?

发一下 obd的yaml文件
obd cluster list --查看集群名
obd cluster edit-config {集群名} --保存到文本里发一下

obtest.log (3.1 KB)

这样连接报错么?不过内存确实设置的小 根据你的os内存来的

执行完上面 如果报错 建议把obproxy_diagnosis.log obproxy.log的日志 也发出来 看看

看报错obproxy内存超限,ps -ef |grep obproxy看下进程在不在

报错的时候有ps查看,进程在的

重启完成后不报错了,后续再遇到的话我再试试

好的 建议内存扩大点 看你配置的内存都不大