springboot链接mysql8.0出错_springboot2.7.11密码不正确
时间: 2023-07-26 16:17:44 浏览: 135
基于SpringBoot+MySql +Rides+Vue2的宠物有家购物商城源码.zip
您好,关于 Spring Boot 连接 MySQL 8.0 出现密码不正确的问题,可能有以下几种原因和解决方案:
1. MySQL 8.0 默认使用了新的密码加密方式,需要在连接字符串中添加加密方式参数。可以在 application.properties 或 application.yml 中添加以下配置:
```
spring.datasource.url=jdbc:mysql://localhost:3306/dbname?useSSL=false&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true&verifyServerCertificate=false&allowMultiQueries=true&useAffectedRows=true&sessionVariables=sql_mode='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION'
spring.datasource.username=root
spring.datasource.password=yourpassword
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/dbname?useSSL=false&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true&verifyServerCertificate=false&allowMultiQueries=true&useAffectedRows=true&sessionVariables=sql_mode='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION'&password=${spring.datasource.password}&jdbcCompliantTruncation=false&useInformationSchema=true&useSSL=false&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC
```
2. 如果您仍然无法连接到 MySQL,请确保您在 MySQL 中正确设置了用户名和密码,以及授予了正确的权限。
3. 如果您使用的是 Spring Security,可能需要在 Security 配置中添加以下代码,以允许使用 MySQL 8.0 的加密方式:
```
@Bean
public PasswordEncoder passwordEncoder() {
return PasswordEncoderFactories.createDelegatingPasswordEncoder();
}
```
希望以上解决方案能够帮助您解决问题。如果还有其他问题,请随时向我提问。
阅读全文