使用jdbc时出现Mysql连接错误
我有一个非常严重的问题,我不能在两天内继续我的任务。我使用docker和mysql服务器。我有docker-compose.yml文件,该文件:使用jdbc时出现Mysql连接错误,mysql,docker,database-connection,jdbctemplate,Mysql,Docker,Database Connection,Jdbctemplate,我有一个非常严重的问题,我不能在两天内继续我的任务。我使用docker和mysql服务器。我有docker-compose.yml文件,该文件: version: '2' services: mongoDb: image: mongo:latest container_name: myproject-mongodb ports: - "27017:27017" mssql: image: mysql/mysql-server:8.0
version: '2'
services:
mongoDb:
image: mongo:latest
container_name: myproject-mongodb
ports:
- "27017:27017"
mssql:
image: mysql/mysql-server:8.0
container_name: myproject-mysql
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: 'pass'
MYSQL_DATABASE: 'myproject'
MYSQL_USER: 'myproject'
MYSQL_PASSWORD: 'alex1234!'
正在成功创建docker映像。使用dbeaver客户端,我使用mysql驱动程序建立连接,当然,还有确切的凭据:
服务器主机:localhost
港口:3306
数据库:myproject
用户名:myproject
密码:“alex1234!”
此外,我还在驱动程序属性allowPublicKeyRetrieval中将设置为true,并建立连接。
现在,在我的intellij in application.properties文件中,我有完全相同的东西:
#MySql WebMvcConfiguration.java
spring.datasource.url=jdbc:mysql://localhost:3306/myproject?allowPublicKeyRetrieval=true
spring.datasource.username=myproject
spring.datasource.password=alex1234!
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
hibernate.dialect = org.hibernate.dialect.MySQLDialect
hibernate.show_sql = true
当我运行应用程序时,我遇到了这个错误:
Authentication plugin 'caching_sha2_password' cannot be loaded
为什么会这样?我还尝试了一些解决方案通过“password”更改用户“username”@“ip_address”,用mysql_native_密码标识代码>
但什么都没有。请帮助在MySQL 8.0中,缓存\u sha2\u密码是默认的身份验证插件,而不是MySQL\u本机\u密码。有关此更改对服务器操作的影响以及服务器与客户端和连接器的兼容性的信息,请参阅缓存\u sha2\u密码作为首选身份验证插件-
您正在docker映像中使用mysql8,它具有不同的身份验证实现
请参见以下链接中的缓存\u sha2\u密码更改
因此,暂时尝试将mysql版本降级到5.7。
在旁注中,通过链接使用mysql-8的正确步骤。查看以下jdbc连接器的链接。