先看两个配置文件的书写:
当我的配置文件后缀为properties时项目是可以正常运行的。
但是当我使用yml运行时就会报错,是有关数据库连接的错误:
这是怎么回事,有没有大佬解答一下?
使用最新的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替换为实际的数据库主机和数据库名称。
方案一:在url的问号后面加上 allowPublicKeyRetrieval=true;但这样可能会被恶意攻击。
方案二:在url的问号后面加上 useSSL=false;数据库版本导致。
两种方法均无效🥲
yml 配置,如果按照你说的没加载到,可能就是缩进问题引起的。
你可以看下每个层级是否都是一个英文的空格...
或者你打开下编辑器的check功能,看看yml的格式是否正确,如果错误修正即可。
格式是正确的
很明显,你启动正常,但是访问网页报错了。原因是你的配置出了点问题。可参考: spring:
– 郭景伟Eureka 1年前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年前@五号位: 如果没有成功可以确认不是配置的问题,可以尝试修改mysql配置:
– 郭景伟Eureka 1年前my.ini 底部添加 skip_public_key_retrieval