现在需要将项目的mysql 转换为oceanBase数据库

【 使用环境 】测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】
背景:原项目是jeecg-boot框架的,需要将mysql切换为OceanBase数据库。OceanBase我是本地windows Docker启动的单体,没有部署集群。用navicat和OceanBase开发工具都是可以连接上数据库。

如图,原先的数据库是mysql 看官网的教程,是兼容mysql的。所以我就改了端口还有用户名。但是还是无法连接成功,报错有mybatis-plus动态数据源无法找到主数据源。

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

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

1 个赞

cod_db是创建在sys租户下的。。?没有业务租户吗

1 个赞

我重新整了一个ob_school 租户,还是没连接上

1 个赞

是mybatis-plus 配置没弄好嘛

1 个赞

报错是啥啊,贴出来看看

1 个赞

1 个赞
  1. 既然 能用navicat和OceanBase开发工具都可以连接上数据库。 这就说明OB数据库自身是没有问题的。 问题肯定是出在你的JDBC配置上。

  2. 你的JDBC配置上, username: sys:root, 应该写成root@sys 吧 (前提是你使用的是sys租户)

1 个赞

image

1 个赞

现在是改成这个了,用的ob_school 租户

1 个赞

找台主机,执行如下命令看看:
mysql -h192.168.1.175 -P2881 -uroot@ob_school -p’aaAA11__’ -Dcod_db -A

1 个赞

都没看到数据库的报错,只是框架里面报了个找不到primary database,jdbc的参数里面有啥特别的吗。。

1 个赞


是被拒绝了嘛

1 个赞

spring:
datasource:
druid:
stat-view-servlet:
enabled: true
loginUsername: admin
loginPassword: 123456
allow:
web-stat-filter:
enabled: true
dynamic:
druid:
initial-size: 5
min-idle: 5
maxActive: 20
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1 FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
poolPreparedStatements: true
maxPoolPreparedStatementPerConnectionSize: 20
filters: stat,wall,slf4j
wall:
selectWhereAlwayTrueCheck: false
stat:
merge-sql: true
slow-sql-millis: 5000
primary: master # 指定 master 为主数据源
datasource:
master:
url: jdbc:mysql://192.168.1.175:2881/cod_db?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
username: root@ob_school
password: aaAA11__
driver-class-name: com.mysql.cj.jdbc.Driver

这个是yml的配置

1 个赞

密码的单引号,换成英文的。

2 个赞

看上去没啥问题,但是你上面贴的图 这个用户用mysql也登陆不上,先解决用mysql命令登录的问题吧 :joy:

2 个赞

:ok_hand:谢啦。一个一个问题来解决。

1 个赞

抱歉哈,没注意。替换英文引号之后相同的报错。

1 个赞

可能是windows安装的mysql有问题。用linux服务器连接就ok了。大佬看一下

1 个赞

现在问题,估计是jdbc配置不对。

1 个赞

用linux服务器连接上OB后,执行这个:
show variables like ‘%tcp%’;

1 个赞