当前位置: 首页 > 面试题库 >

spring启动到mysql数据库的连接被拒绝

华升
2023-03-14
问题内容

我是Docker的新手,我需要在docker工具箱上使用docker-compose启动Angular / SpringBoot /
MySQL项目。我将docker yml文件复制到了使用相同技术的项目中,并更改了其中的路径以匹配我的项目。但是,当我尝试docker-
compose时,会引发以下错误:

com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
[...] 84 common frames omitted
Caused by: java.net.ConnectException: Connection refused (Connection refused)

docker-compose.yml看起来像:

version: '3'

services:
  database:
    image: mysql
    container_name: database
    environment:
      MYSQL_ROOT_PASSWORD: ****
      MYSQL_DATABASE: db_example
      MYSQL_USER: springuser
      MYSQL_PASSWORD: ****
    ports:
      - 3306:3306
    volumes:
      - db_exampleData:/var/lib/mysql

  springapi:
    image: openjdk:10-jre-slim
    container_name: springapi
    ports:
      - 8443:8443
    depends_on:
      - database
    volumes:
      - ./backend/target/backend-0.1.0.jar:/application.jar
    command: ["java", "-jar", "application.jar"]

  angular:
    image: nginx:alpine
    container_name: angular
    ports:
      - 4200:80
    depends_on:
      - springapi
    volumes:
      - ./nginx.conf:/etc/nginx/nginx.conf
      - ./frontend/my-app/dist/my-app:/usr/share/nginx/html

volumes:
  db_exampleData:

application.properties:

spring.jpa.hibernate.ddl-auto=none
spring.jpa.open-in-view=false
spring.datasource.url=jdbc:mysql://localhost:3306/db_example
spring.datasource.username=springuser
spring.datasource.password=****

server.port=8443

任何建议都会有所帮助!


问题答案:

您需要像这样更改连接:

jdbc:mysql://database:3306/db_example

并将其添加springapi服务下的docker-compose中:

links:
   - database

另一方面,您可以使用wait-for-it.sh通过在springapiservice 下添加命令部分来检查DB是否已启动:

command: ["path/to/wait-for-it.sh", "database:3306", "-t", "6000", "--", "YOUR ACTUAL COMMAND"]


 类似资料:
  • 我正在用Spring Boot开发一个应用程序。我正在使用phpMyAdmin(在我的大学是免费的)数据库进行持久化。我的数据库在远程服务器上。如何为远程数据库连接配置数据源? 请帮助我在属性文件和数据源bean配置中使用我的配置类中的注释来配置它。 例如:登录用户名:,密码:

  • Thu Aug 16 15:55:47 CDT 2018:Apache Derby Network Server-10.11.1.2-(1629631)已启动并准备接受端口1888上的连接 很好!那是我想要的地方。我在端口1888上有它,因为端口1527已经在使用中。 问题是NetBeans IDE8.2没有说明创建数据库时如何选择端口。 从“服务”选项卡中,展开“数据库”节点,然后右键单击“Ja

  • 我试图从Java连接到MySQL,但我得到以下错误。 谢谢你的帮助,我对此很陌生。我肯定密码和用户名是正确的,所以我不确定从这里去哪里。下面是我连接数据库的代码:

  • 我试图在docker compose中建立一个Spring Boot应用程序,该应用程序依赖于名为teste的MySQL数据库。发布docker compose up后,我得到: 我在Linux Mint上运行,我的docker compose版本是1.23.2,我的docker版本是18.09.0。 应用程序.属性 docker-compose.yml 和Dockerfile

  • 我已经写出了我的数据库,它可以运行(在MySql上),并创建了我自己的jsp程序,但当我试图测试数据库和文件之间的连接时,我发现了这个错误 HTTP状态500-无法为JSP编译类: 类型异常报告 消息无法为JSP编译类: 说明服务器遇到内部错误,无法满足此请求。 例外 org.apache.jasper.无法为JSP编译类: 在生成的java文件中的第:[14]行发生错误:[C:\Program

  • 我是debezium的新手,我正在尝试将我的kafka连接器连接到我本地WAMP服务器上已经存在的MySQL数据库。 我用我的邮递员发了以下邮件 我的不良反应