spring boot关于mysql 8.0的各种连接问题

本文介绍了在Spring Boot中遇到的连接MySQL 8.0时的问题,包括配置错误导致的数据库连接失败和时区错误。解决方法包括更换驱动程序类为`com.mysql.cj.jdbc.Driver`,更新版本号,并在数据库URL中添加时区设置避免报错。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

spring boot关于mysql 8.0的连接问题

之前我们习惯用Mysql5.0数据库,连接的时候基本是这么配置的:

spring.datasource.driverClassName = com.mysql.jdbc.Driver

spring.datasource.url = jdbc:mysql://localhost:3306/数据库名?

useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8&useSSL=false

spring.datasource.username= root

spring.datasource.password = 123456

然后在Pom.xml添加配置:

<dependency>

  <groupId>mysql</groupId>

  <artifactId>mysql-connector-java</artifactId>

  <version>5.1.32</version>

</dependency>

但是在mysql8.0里你如果还是这样配置,就会报错了,会报数据库连接失败.这就告诉我们不能再像之前那样去配置连接了,我们需要改动.

改动1:

要换成新的驱动程序类是**`com.mysql.cj.jdbc.Driver’**

spring.datasource.driverClassName = com.mysql.cj.jdbc.Drive

改动2:

<dependency>

  <groupId>mysql</groupId>

  <ar
Spring Boot连接MySQL 8.0时遇到"Public Key Retrieval is not allowed"错误通常是由于SSL/TLS安全设置导致的,MySQL服务器需要验证客户端提供的证书。当你首次尝试通过SSL连接时,它会检查你的应用程序的公钥,如果没有提供或权限不足,就会抛出这个错误。 解决这个问题通常有以下几个步骤: 1. **配置Spring Boot**: 在application.properties或application.yml文件中添加数据库连接相关的SSL属性,例如: ```properties spring.datasource.url=jdbc:mysql://your_host:port/your_db?useSSL=true&serverTimezone=UTC spring.datasource.username=your_username spring.datasource.password=your_password spring.jpa.hibernate.ddl-auto=update spring.jpa.show-sql=true ``` 确保`useSSL=true`启用SSL连接。 2. **提供信任证书**: 如果你的应用是在本地运行,你可能需要生成一个自签名的SSL证书并将其导入到MySQL的ca-certificates目录。如果不是,你应该从MySQL官网下载官方的证书链文件,并放置在合适的位置。 3. **更新JDBC connector**: 有时问题也可能是因为使用的JDBC驱动版本不支持SSL,确保你正在使用的MySql Connector/J或MariaDB Connector/J是最新且兼容的版本。 4. **更改SSL Mode**: MySQL 8.0默认开启了更严格的SSL模式,你可以尝试设置`ssl-mode=VERIFY_CA`或`ssl-mode=VERIFY_IDENTITY_FULL`。 5. **重启服务**: 有时候简单地重启Spring Boot应用和MySQL服务也能解决问题。 如果以上步骤都尝试过后仍然存在问题,可能是防火墙规则、客户端证书管理或其他安全设置的问题,需要检查网络环境和服务器配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值