test用户
2021 年11 月 5 日 10:39
#1
【产品名称】OceanBase v3.0.1
【产品版本】OceanBase v3.0.1
【问题描述】就是我使用 obclient -h127.0.0.1 -P2881 -uroot 进入了OceanBase兼容mysql租户的模式,使用了OceanBase数据库,我觉得是安装好了。(也许没安装好)然后我使用Dbeaver连接工具尝试连接OceanBase;是windows系统下连接liunx系统下的OceanBase数据库;
相关填写如下服务器地址:127.0.0.1 或是 远程连接的ip地址(10.30.80.88) 都使用过
端口:2883,也使用2881 但是会密码错误,当然不会是密码错了。
数据库:OceanBase用户名:root@租户#c1(集群名)是直接用mysql进行连接的,驱动也是mysql-5.7.19,租户是使用SELECT * FROM oceanbase.gv$tenant; 查出来一条1001 的租户;而集群名,是使用的cluster中存在那个c1文件。所以是c1
测试连接出的错误:Communications link failure
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. Connection refused: connect Connection refused: connect
test用户
2021 年11 月 5 日 10:43
#3
还有个问题,OceanBase的sql语法,如果说连接了jdbc的话,是走mysql的语法吗?还是oracle呀?是根据什么来的?还是说无论写哪个语法的sql都可以通过增删改查?
test用户
2021 年11 月 5 日 11:15
#6
啊这,大佬我不使用任何租户以及密码能连上OceanBase是什么情况呀??是不是没安装好啊??来个大佬帮一下,不要摸鱼了
上旬
2021 年11 月 5 日 11:56
#7
mysql -h10.30.80.88 -uroot@ obmysql#c1 -P2883 -p oceanbase
试试在黑屏下用这个连接串能否访问数据库
看报错是拒绝连接,用ping和telnet来确定下是否能够连通访问的地址
上旬
2021 年11 月 5 日 11:57
#8
还是mysql的语法,社区版还不支持oracle模式,不用考虑
test用户
2021 年11 月 5 日 13:57
#9
大佬,用你这个连接串无法访问数据库,只要用ob客户端不写密码,ip填127.0.0.1就能进去。 ping10.30.80.88,是能ping通的。
上旬
2021 年11 月 5 日 16:47
#10
有可能是白名单的问题
show variables like '%ob_tcp_invited_nodes%' ;
使用127.0.0.1登录后,用上面这个语句查看一下白名单,如果是127.0.0.1的话,修改下白名单应该就可以登录了
修改语句:set global ob_tcp_invited_nodes='%' ; --%代表所有ip都可以连接访问你的数据库
或者:set global ob_tcp_invited_nodes='127.0.0.1,10.30.80.88' ; --只有这两个地址可以连接访问数据库
不用写密码,应该是因为你新建租户之后没有改密码。修改密码可以登录到这个租户修改
SET PASSWORD = PASSWORD (123456 ); --修改当前登录用户密码
OB 集群通常有3个observer节点组成(如果安装的是单节点,那就是一个observer),每个observer都监听2881 端口。 通常可以通过连接任一observer 节点的 2881 去访问集群。用户名格式跟mysql不一样,要写 root@sys 或者 root@obmysql, @ 后面是租户名。因为OB集群支持多租户,要指定租户名。虽然你不指定也成功了,那个习惯不好。
生产环境并不建议 直连observer节点,而是通过一个 obproxy进程连接 OB集群。obproxy是反向代理,监听端口是2883, 它跟后端OB集群保持通信。连接obproxy的2883 端口才行,用户名格式又不一样 用户名@租户名#集群名 或者 集群名:租户名:用户名 ,一定要写全,端口是 2883 。
以上两种方法不要混淆。用户名格式和后面的端口要匹配。详细请参考这篇文章 OB 开发测试建议 (上) (qq.com)
可以先直连一个observer 2881 端口,看看集群是否创建成功,租户访问密码是否正常。
然后通过obproxy 2883 端口连接。如果有问题,要么是obproxy 2883 不通,要么就是这个obproxy安装部署的不对,obproxy跟后端ob集群没有连通。这个是安装问题。请参考安装文章:OceanBase 社区版
上旬
2021 年11 月 8 日 09:53
#15
obclient -h127.1 -uroot@ sys -P2881 -p oceanbase
试试用这个连接串是否可以连接(可以连接就说明集群创建成功了),如果可以连接再使用2883 端口访问看能否连接,也就是用下面的语句:
obclient -h127.1 -uroot@ sys#c1 -P2883 -p oceanbase
原理参考上面庆涛老师的解释
连接成功了吗,可以看看这个教程
https://www.bilibili.com/video/BV1ab4y1Y79J?spm_id_from=333.999.0.0