论坛小助手
#7
根据您提供的信息,您在尝试连接到 172.16.120.6 的 2881 端口时遇到了问题。具体来说,您在中控机 172.16.120.2 上使用 obclient 尝试连接时收到了错误信息 “Can’t connect to OceanBase server on 172.16.120.6”。这表明存在网络连接问题或者目标服务器上的 OceanBase 实例没有正确响应。
以下是可能的原因和解决方案:
-
端口未开放或防火墙规则限制:
- 请确保 172.16.120.6 上的 2881 端口已经开放,并且没有防火墙规则阻止从中控机 172.16.120.2 发起的连接请求。
- 检查目标服务器的 iptables 或其他防火墙设置,确保 2881 端口允许外部连接。
- 您可以尝试在目标服务器上使用
netstat -tuln
命令检查 2881 端口是否处于监听状态。
-
服务未运行或配置问题:
- 根据您提供的信息,172.16.120.6 上的 OceanBase 实例似乎正在运行(从
ps -ef | grep obproxy
输出中可以看出),但是仍然有可能存在配置问题导致无法正常接收连接。
- 检查
observer
日志文件,查看是否有任何错误信息或警告,这些信息可以帮助定位问题。
- 确认
observer
的配置文件中关于监听端口的设置是否正确。
-
网络问题:
- 检查两台机器之间的网络连通性,确保没有网络中断或路由问题。
- 使用
ping 172.16.120.6
命令检查网络连通性。
-
认证问题:
- 确保您使用的用户名和密码是正确的,并且具有足够的权限来连接到目标数据库。
-
其他可能性:
- 如果以上方法均无法解决问题,建议您检查
obproxy
的配置和日志文件,确保其正确配置并能够转发到目标 observer
。
综上所述,您可以按照以下步骤进行排查:
-
检查端口监听状态:
[admin@172.16.120.6 ~]$ netstat -tuln | grep 2881
-
检查防火墙规则:
[admin@172.16.120.6 ~]$ sudo iptables -L -n | grep 2881
-
检查 observer
日志:
[admin@172.16.120.6 ~]$ cat /path/to/observer/log/*.log
-
检查 obproxy
配置和日志:
[admin@172.16.120.6 ~]$ cat /path/to/obproxy/conf/obproxy.ini
[admin@172.16.120.6 ~]$ cat /path/to/obproxy/log/*.log
希望以上建议能帮助您解决问题。如果问题依然存在,请提供更多详细的日志信息以便进一步分析。
检索到的文档如下:
- 服务端连接
- 快速体验 OceanBase 数据库
(小助手的答复已结束,如未能解决您的问题,请继续提问并等待其他同学的回复,谢谢!)
1 个赞
主要是2881的端口好像是不通的
这是在172.16.120.6机器上的进程
这是在172.16.120.2中控机上的访问连接超时
1 个赞
辞霜
#10
你2881是通过了的,2883登录失败是因为没有obproxy 你看一下你的yaml配置文件是否配置了obproxy
然如果陪着了可以使用 obd cluster start xxxx -c obproxy-ce单独启动proxy组件
1 个赞
这个是172.16.120.6本地能够登录,
我不能在172.16.120.2机器上登录.6的obclient,难道分布式数据库中控机就是不可以登录其他机器上启动的obclient的?
辞霜
#13
2881是本地登录端口,你需要搭建obproxy使用2883的obproxy端口进行链接。
你看一下你的yaml配置文件是否配置了obproxy
然如果配置了可以使用 obd cluster start xxxx -c obproxy-ce单独启动proxy组件
现在是我在172.16.120.6上启动了obclient和obproxy
172.16.120.7和172.16.120.8上都是只有obclient进程
那么我想使用obproxy端口连接.7和.8上的obclient应该用什么命令连接呢?
我试了一下这条命令是链接不上的
辞霜
#15
ps -ef|grep obproxy 看一下,把yaml文件也发一下看看
辞霜
#17
你的obproxy只安装了一个6节点,所以ip你只能填6节点,7和8节点登录不进去的。obproxy会自己根据负载均衡选择登录哪个节点.
这个应该可以登录的obclient -172.16.120.6 -P2883 -uroot@sys#myoceanbase222 -p -Ac
obproxy可以创建1个或者多个节点成为一个proxy集群。
比如当前是 6 7 8 三个节点的ob集群,你的obproxy搭建在5节点
届时你的链接串为:obclient -172.16.120.5 -P2883 -uroot@sys#myoceanbase222 -p -Ac
1 个赞
我明白你的意思了大佬 但是我现在在6节点搭建了obproxy,我在2节点或者9节点上,用obclient -h172.16.120.6 -P2883 -uroot@sys#myoceanbase222 -p -Ac连接串仍然连接不上代理,他们几个节点之间的网络是通的,防火墙是关闭的,这个是为啥呢? 我现在只能在节点上用本地登录才行
我直接打断是因为它运行了蛮久的也,这个如果联通的话 应该不需要等很久的把?
辞霜
#20
测试下别的节点,看看是不是所有节点都无法登录呢,也有可能是proxy存在问题。
那是不是需要启动的时候把yaml文件中的obproxy给放在120.6 120.7 120.8都放上? 我现在只给了.6
辞霜
#23
这个需要自行考虑, 我总感觉你的理解有点怪怪的
建议学习下下面关于obproxy的知识有很多章节介绍可以慢慢看
https://open.oceanbase.com/blog/10900290
你这个命令都报错,不应该啊。 感觉你的集群就没有部署成功。
在 120.6 机器上,通过2881端口连上数据库, 执行如下命令:
show databases;
如果输出中没有看到oceanbase这个库,即表示集群初始化未成功。