DBeaver连接工具连接OceanBase,求助求助。想使用OceanBase连接jdbc操作代码

【产品名称】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

我发了好多帖子啦,球球了,

还有个问题,OceanBase的sql语法,如果说连接了jdbc的话,是走mysql的语法吗?还是oracle呀?是根据什么来的?还是说无论写哪个语法的sql都可以通过增删改查?

大佬值班都在摸鱼吗。。。。

再补一张图

啊这,大佬我不使用任何租户以及密码能连上OceanBase是什么情况呀??是不是没安装好啊??来个大佬帮一下,不要摸鱼了

mysql -h10.30.80.88 -uroot@obmysql#c1 -P2883 -p oceanbase
试试在黑屏下用这个连接串能否访问数据库
看报错是拒绝连接,用ping和telnet来确定下是否能够连通访问的地址

还是mysql的语法,社区版还不支持oracle模式,不用考虑

大佬,用你这个连接串无法访问数据库,只要用ob客户端不写密码,ip填127.0.0.1就能进去。  ping10.30.80.88,是能ping通的。

有可能是白名单的问题
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 社区版

好的,感谢大佬。

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