Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用jdbc时出现Mysql连接错误_Mysql_Docker_Database Connection_Jdbctemplate - Fatal编程技术网

使用jdbc时出现Mysql连接错误

使用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

我有一个非常严重的问题,我不能在两天内继续我的任务。我使用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
    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连接器的链接。