无法从 Spring Boot 应用程序连接到 MySQL Docker 服务器

问题描述 投票:0回答:1

我现在正在尝试一些新事物,我想创建一个小型 Spring/mySQL 应用程序。我已经设置了一个 docker-compose 文件,如下所示:

version: '3.3'
services:
  docker-mysql:
    container_name: docker-mysql
    image: mysql:5.7
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=root
    volumes:
      - db_data:/var/lib/mysql
      - ./initalize.sql:/docker-entrypoint-initdb.d/initalize.sql:ro
    ports:
      - 3306:3306
    expose:
      - 3306
volumes:
  db_data: {}

在 initalize.sql 中,我设置了一个基本 TEST 数据库,其中包含一些测试表并填充其中一些,它工作正常,我可以通过命令行查询元素。

另一方面,我无法通过 Spring 连接到它,我有以下 application.properties 文件:

spring.jpa.hibernate.ddl-auto=none
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect
spring.datasource.url=jdbc:mysql://localhost:3306/TEST?useSSL=false
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

每次我尝试启动该应用程序时,它都会收到(我没有在 docker 映像中运行该应用程序,它在 Windows 上运行) com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure 错误,并且它不能找到服务器。

我还尝试连接以将数据源 url 更改为 jdbc:mysql://docker-mysql:3306/TEST?useSSL=false 但它也不起作用。

java mysql docker
1个回答
0
投票

如果你想要这个作品:

我还尝试连接以将数据源 url 更改为 jdbc:mysql://docker-mysql:3306/TEST?useSSL=false 但它也不起作用。

您的 Spring Boot 应用程序应作为 docker 容器在与 MySQL docker 容器相同的虚拟网络上运行,或者两个容器都应在 docker 提供的默认桥接网络上运行。

© www.soinside.com 2019 - 2024. All rights reserved.