【 使用环境 】测试环境
【 OB or 其他组件 】
【 使用版本 】
【问题描述】
背景:原项目是jeecg-boot框架的,需要将mysql切换为OceanBase数据库。OceanBase我是本地windows Docker启动的单体,没有部署集群。用navicat和OceanBase开发工具都是可以连接上数据库。
如图,原先的数据库是mysql 看官网的教程,是兼容mysql的。所以我就改了端口还有用户名。但是还是无法连接成功,报错有mybatis-plus动态数据源无法找到主数据源。
【复现路径】问题出现前后相关操作
【附件及日志】推荐使用OceanBase敏捷诊断工具obdiag收集诊断信息,详情参见链接(右键跳转查看):
【SOP系列 22 】——故障诊断第一步(自助诊断和诊断信息收集)
1 个赞
皇甫侯
#3
cod_db是创建在sys租户下的。。?没有业务租户吗
1 个赞
我重新整了一个ob_school 租户,还是没连接上
1 个赞
找台主机,执行如下命令看看:
mysql -h192.168.1.175 -P2881 -uroot@ob_school -p’aaAA11__’ -Dcod_db -A
1 个赞
皇甫侯
#12
都没看到数据库的报错,只是框架里面报了个找不到primary database,jdbc的参数里面有啥特别的吗。。
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 个赞
皇甫侯
#16
看上去没啥问题,但是你上面贴的图 这个用户用mysql也登陆不上,先解决用mysql命令登录的问题吧
2 个赞
可能是windows安装的mysql有问题。用linux服务器连接就ok了。大佬看一下
1 个赞
用linux服务器连接上OB后,执行这个:
show variables like ‘%tcp%’;
1 个赞