SpringBoot 连接 OceanBase 数据库示例程序报错连接被拒绝

使用OceanBase官方的:SpringBoot 连接 OceanBase 数据库示例

1. 解释一:

jdbc:oceanbase://host:port/schema_name?user=$user_name&password=$password&useSSL=false&useUnicode=true&characterEncoding=utf-8

参数说明:

  • host:提供 OceanBase 数据库连接 IP。ODP 连接方式使用的是一个 ODP 地址;直连方式使用的是 OBServer 节点的 IP 地址。

  • port:提供 OceanBase 数据库连接端口。ODP 连接的方式默认是 2883,在部署 ODP 时可自定义;直连方式默认是 2881,在部署 OceanBase 数据库时可自定义。

  • schema_name:需要访问的 Schema 名称。(即数据库名称,使用默认test即可)

  • user_name:提供租户的连接账户。ODP 连接方式的常用格式有两种:用户名@租户名#集群名 或者 集群名:租户名:用户名;直连方式格式:用户名@租户名。

  • password:提供账户密码。

  • useSSL=false&useUnicode=true&characterEncoding=utf-8:为额外的连接属性。

  • useSSL:强制连接时是否使用 SSL/TLS。 默认值:false。

  • useUnicode:指定字符的编码、解码格式。 默认值:true。

  • characterEncoding:支持数据库 URL 选项的字符编码。默认值:utf8。

  • socketTimeout:定义了网络 Socket 超时(SO_TIMEOUT),以毫秒为单位。值为 0 时将禁用此超时。

2. 解释二:

修改 java-oceanbase-springboot 项目中的数据库连接信息

示例如下:

  • 数据库驱动的名称为:com.oceanbase.jdbc.Driver
  • OBServer 节点的 IP 地址为 10.10.10.1。
  • 访问端口使用的是 2881。
  • 需要访问的 Schema 名称为 sys。
  • 租户的连接账户是 sys@xyoracle。xyoracle 是在 OceanBase 数据库中创建的一个 Oracle 模式的用户租户,sys 是租户 xyoracle 的用户名称。
  • 密码是 ******。

示例代码如下:

spring.datasource.driverClassName=com.oceanbase.jdbc.Driver
spring.datasource.url=jdbc:oceanbase://10.10.10.1:2881/sys?useSSL=false&useUnicode=true&characterEncoding=utf-8
spring.datasource.username=sys@xyoracle
spring.datasource.password=******

3. 报错信息

java.sql.SQLSyntaxErrorException: Could not connect to xx.xx.xx.xx:xxxx: (conn=250006) Access denied for user 'root@xxx'@'xx.xx.xx.xx' (using password: YES)
	at com.oceanbase.jdbc.internal.util.exceptions.ExceptionFactory.createException(ExceptionFactory.java:110) ~[oceanbase-client-2.4.3.jar:na]
	at com.oceanbase.jdbc.internal.util.exceptions.ExceptionFactory.create(ExceptionFactory.java:235) ~[oceanbase-client-2.4.3.jar:na]
	at com.oceanbase.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:1644) ~[oceanbase-client-2.4.3.jar:na]
	at com.oceanbase.jdbc.internal.util.Utils.retrieveProxy(Utils.java:1427) ~[oceanbase-client-2.4.3.jar:na]
	at com.oceanbase.jdbc.OceanBaseConnection.newConnection(OceanBaseConnection.java:306) ~[oceanbase-client-2.4.3.jar:na]
	at com.oceanbase.jdbc.Driver.connect(Driver.java:89) ~[oceanbase-client-2.4.3.jar:na]
	at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) ~[HikariCP-4.0.3.jar:na]
	at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:364) ~[HikariCP-4.0.3.jar:na]
	at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206) ~[HikariCP-4.0.3.jar:na]
	at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:476) ~[HikariCP-4.0.3.jar:na]
	at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561) ~[HikariCP-4.0.3.jar:na]
	at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115) ~[HikariCP-4.0.3.jar:na]
	at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) ~[HikariCP-4.0.3.jar:na]
	at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:159) ~[spring-jdbc-5.3.27.jar:5.3.27]
	at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:117) ~[spring-jdbc-5.3.27.jar:5.3.27]
	at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80) ~[spring-jdbc-5.3.27.jar:5.3.27]
	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:376) ~[spring-jdbc-5.3.27.jar:5.3.27]
	at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:431) ~[spring-jdbc-5.3.27.jar:5.3.27]
	at com.oceanbase.testspringboot.TestSpringbootApplicationTests.contextLoads(TestSpringbootApplicationTests.java:23) ~[test-classes/:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]

4. 解决办法

#  使用用户名@租户吗#集群名的方式,不要直接使用用户名@租户名的方式
spring.datasource.username=sys@xyoracle#xxx

相关推荐

  1. springboot连接oracleORA-12505解决方案

    2024-01-23 05:56:02       30 阅读
  2. eureka:链接8761拒绝

    2024-01-23 05:56:02       13 阅读
  3. nifi连接Sql server数据库TLS问题

    2024-01-23 05:56:02       35 阅读
  4. 解决C#连接MySQL数据库: SslMode=None;

    2024-01-23 05:56:02       18 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-01-23 05:56:02       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-01-23 05:56:02       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-01-23 05:56:02       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-01-23 05:56:02       18 阅读

热门阅读

  1. python使用dlib库进行人脸关键点检测

    2024-01-23 05:56:02       39 阅读
  2. 【数组】-Lc169-求众数(摩尔投票相抵消法)

    2024-01-23 05:56:02       31 阅读
  3. UI网站汇总

    2024-01-23 05:56:02       37 阅读
  4. RSI的c#计算,同花顺

    2024-01-23 05:56:02       25 阅读
  5. QT中QApplication对象有且只有一个

    2024-01-23 05:56:02       35 阅读
  6. git commit 描述如何修改

    2024-01-23 05:56:02       37 阅读
  7. 扑克牌排序

    2024-01-23 05:56:02       34 阅读
  8. 说说Python中的浅拷贝和深拷贝

    2024-01-23 05:56:02       41 阅读
  9. docker 部署postgres 、geoserver

    2024-01-23 05:56:02       30 阅读