首页 新闻 会员 周边 捐助

springboot整合mybatis时配置文件properties和yml

0
悬赏园豆:10 [已解决问题] 解决于 2023-11-16 10:54

先看两个配置文件的书写:


当我的配置文件后缀为properties时项目是可以正常运行的。
但是当我使用yml运行时就会报错,是有关数据库连接的错误:




这是怎么回事,有没有大佬解答一下?

五号位的主页 五号位 | 小虾三级 | 园豆:610
提问于:2023-11-07 22:07

很明显,你启动正常,但是访问网页报错了。原因是你的配置出了点问题。可参考: spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://ip:3306/mybatis?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC&zeroDateTimeBehavior=CONVERT_TO_NULL&allowMultiQueries=true&useSSL=false

郭景伟Eureka 1年前

@郭景伟Eureka: 还是不能成功🥲

五号位 1年前

@五号位: 如果没有成功可以确认不是配置的问题,可以尝试修改mysql配置:
my.ini 底部添加 skip_public_key_retrieval

郭景伟Eureka 1年前
< >
分享
最佳答案
0

使用最新的JDBC驱动程序(Connector/J 8.0及更高版本)连接MySQL或MariaDB时,通常会发生此错误。
这是因为,默认情况下,这些驱动程序不允许SSL连接的公钥检索。
如果想允许这样做,必须在JDBC URL中使用allowPublicKeyRetrieval=true显式地指示它。
但请注意,这可能会带来潜在的安全风险。
下面是如何在JDBC URL中包含此参数的示例:
jdbc:mysql://localhost:3306/db_name?useSSL=false&allowPublicKeyRetrieval=true
还包括useSSL=false,因为如果启用了SSL,则可能不允许进行公钥检索。
将localhost:3306/db_name替换为实际的数据库主机和数据库名称。

收获园豆:10
npe0 | 小虾三级 |园豆:1502 | 2023-11-10 11:59
其他回答(2)
0

方案一:在url的问号后面加上 allowPublicKeyRetrieval=true;但这样可能会被恶意攻击。
方案二:在url的问号后面加上 useSSL=false;数据库版本导致。

TenFly | 园豆:69 (初学一级) | 2023-11-08 10:32

两种方法均无效🥲

支持(0) 反对(0) 五号位 | 园豆:610 (小虾三级) | 2023-11-08 19:38
0

yml 配置,如果按照你说的没加载到,可能就是缩进问题引起的。
你可以看下每个层级是否都是一个英文的空格...
或者你打开下编辑器的check功能,看看yml的格式是否正确,如果错误修正即可。

西越泽 | 园豆:10775 (专家六级) | 2023-11-08 22:32

格式是正确的

支持(0) 反对(0) 五号位 | 园豆:610 (小虾三级) | 2023-11-08 22:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册