使用dbeaver 连接ob数据库被拒绝

【 使用环境 】生产环境 or 测试环境
【 OB or 其他组件 】
【 使用版本 】v4.3.4.0
【问题描述】使用dbeaver连接ob被拒绝;使用单机版安装,配置文件为mini-single-example.yaml

【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):

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

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

根据您提供的信息,使用 DBeaver 连接 OceanBase 数据库时遇到了连接被拒绝的问题。以下是可能的原因和解决方法:

  1. 端口配置问题

    • 从错误信息中可以看到,DBeaver 尝试连接的端口是 2863,但连接被拒绝。请确认您的 mini-single-example.yaml 配置文件中指定的端口是否正确,并且该端口在 OceanBase 实例上是开放的。
    • 您可以检查 mini-single-example.yaml 文件中的 rpc_portsql_port 配置项,确保它们与 DBeaver 中设置的端口一致。
  2. 防火墙或网络问题

    • 确认防火墙设置没有阻止 DBeaver 所在机器与 OceanBase 实例之间的通信。您可以尝试暂时关闭防火墙进行测试,或者添加相应的防火墙规则允许特定端口的流量。
    • 如果是在生产环境中,请谨慎操作防火墙设置,并确保遵循安全策略。
  3. OBProxy 或 OBServer 服务状态

    • 确保 OBProxy 或 OBServer 服务正在运行。如果使用了 OBProxy,还需要确认 OBProxy 的配置是否正确,并且它能够正常转发请求到 OBServer。
    • 您可以通过命令行工具如 obd cluster status 来检查集群状态。
  4. 认证信息错误

    • 确认 DBeaver 中输入的用户名、密码等认证信息是否正确无误。OceanBase 对用户权限管理较为严格,任何不匹配的信息都可能导致连接失败。
  5. 日志分析

    • 根据文档片段中的建议(虽然这些片段主要涉及特定错误码),您可以查看 Alert 日志和 Trace 文件以获取更多关于连接失败的具体原因。这有助于进一步排查问题所在。

综上所述,请先按照上述步骤逐一排查可能的问题点。如果仍然无法解决问题,建议使用 OceanBase 敏捷诊断工具 obdiag 收集详细的诊断信息,并联系 OceanBase 技术支持团队获取更专业的帮助。希望以上信息对您有所帮助!

详情请参考:

  1. 5000 ~ 5999
  2. 0001 ~ 3999

看着用户名没带租户。

可以按照下面的文档对比下哪个步骤有问题,还有楼上的兄弟说也对,用户名没带租户信息

https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000234600

发一下你的连接配置项

创建时,没有创建租户,按照最小单例创建后,直接启动,然后去创建数据库了,导入表信息;现在还能创建租户吗,还有说有默认的,刚才试了下root@sys也不行

image
是这个吗

根据您提供的信息和图片内容,看起来您在使用 DBeaver 连接 OceanBase 数据库时遇到了连接被拒绝的问题,并且提到没有创建租户。以下是详细的解答和建议:

1. 关于租户的创建

在 OceanBase 中,默认情况下并没有自动创建租户。您需要显式地创建一个租户来部署应用程序或进行数据库操作。如果您是按照最小单实例配置启动了 OceanBase,那么接下来应该创建一个租户。

创建租户步骤:

  • 登录到 sys 租户:首先,确保您可以成功登录到 sys 租户。默认情况下,sys 租户是存在的,但可能需要正确的用户名和密码。

    使用命令行工具 obclient 登录到 sys 租户:

    obclient -h<host> -P<port> -uroot@sys#cluster_name -p<password>
    
  • 创建资源池和资源单元:为新租户创建资源池和资源单元。例如:

    CREATE RESOURCE UNIT unit_spec MAX_CPU = 2, MEMORY_SIZE = '2G';
    CREATE RESOURCE POOL pool_spec UNIT = 'unit_spec', UNIT_COUNT = 1;
    
  • 创建租户:使用上述创建的资源池创建一个新的租户:

    CREATE TENANT tenant_name RESOURCE_POOL = 'pool_spec';
    
  • 设置租户参数(可选):根据需要调整租户的参数,如字符集等:

    ALTER TENANT tenant_name SET VARIABLES ob_tcp_invited_nodes='%';
    

2. 关于连接问题

从您的错误信息来看,DBeaver 尝试连接到端口 2863 或 2881,但连接被拒绝。这通常意味着目标服务器上的相应服务未运行或端口未开放。

检查并解决连接问题:

  • 确认 OBServer 端口:请检查 mini-single-example.yaml 文件中的 sql_port 配置项,确保它与 DBeaver 中设置的端口一致。默认情况下,OceanBase 的 SQL 端口是 2881 或 2883。

  • 验证 OBServer 服务状态:确保 OBServer 正常运行。可以使用以下命令检查集群状态:

    obd cluster status <cluster_name>
    
  • 防火墙设置:确认防火墙允许 DBeaver 所在机器与 OceanBase 实例之间的通信。如果是在生产环境中,请谨慎操作防火墙设置,并确保遵循安全策略。

  • 认证信息:确保 DBeaver 中输入的用户名、密码等认证信息正确无误。对于 sys 租户,默认用户名为 root,密码为您在安装过程中设置的密码。

3. 具体操作示例

假设您已经成功登录到 sys 租户,并希望创建一个名为 my_tenant 的租户:

-- 创建资源单元
CREATE RESOURCE UNIT my_unit MAX_CPU = 2, MEMORY_SIZE = '2G';

-- 创建资源池
CREATE RESOURCE POOL my_pool UNIT = 'my_unit', UNIT_COUNT = 1;

-- 创建租户
CREATE TENANT my_tenant RESOURCE_POOL = 'my_pool';

-- 设置租户参数(允许所有 IP 连接)
ALTER TENANT my_tenant SET VARIABLES ob_tcp_invited_nodes='%';

然后,在 DBeaver 中配置连接信息:

  • Driver: Driver for OceanBase-MySQL
  • URL: jdbc:oceanbase://<host>:<port>/<database>
  • User: root@my_tenant
  • Password: 您设置的密码

总结

  1. 创建租户:按照上述步骤创建租户,并确保正确配置资源池和资源单元。
  2. 解决连接问题:确认 OBServer 端口配置、服务状态、防火墙设置以及认证信息是否正确。

如果仍然遇到问题,建议使用 OceanBase 敏捷诊断工具 obdiag 收集详细的诊断信息,并联系 OceanBase 技术支持团队获取进一步帮助。希望以上信息对您有所帮助!

检索到的文档如下:

  1. 按表恢复相关视图介绍
  2. 字符串文本
  3. 通过调整资源规格实现租户扩缩容

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

不建议把业务数据放在sys租户,最好新建一个业务租户
还有就是你这个看着像网络没通啊,按照小助手的说的检查下网络以及端口呢

刚才查询了下启动端口,才发现没有2883,想问下按照mini-single-example.yaml配置部署,是不会安装OBProxy吗,安装包是oceanbase-all-in-one

感谢感谢,带上租户名,用2881连接,就直接成功,租户的话到后面我去创建下

1 个赞