首页 > 解决方案 > Docker SpringBoot MySql:驱动没有从服务器收到任何数据包

问题描述

我正在尝试使用docker创建一个spring boot api和mysql数据库,但是我遇到了这个我无法解决的错误。我尝试更改端口,但无济于事,似乎我的应用程序容器无法填充 mysql 数据库。

Docker文件:

FROM openjdk:11

ARG PROFILE
ARG ADDITIONAL_OPTS

ENV PROFILE=${PROFILE}
ENV ADDITIONAL_OPTS=${ADDITIONAL_OPTS}

WORKDIR /opt/spring_boot

COPY target/*.jar app.jar

SHELL ["/bin/sh", "-c"]

EXPOSE 5005
EXPOSE 8080

CMD java ${ADDITIONAL_OPTS} -jar app.jar --spring.profiles.active=${PROFILE}

ENTRYPOINT ["java","-jar","app.jar"]

码头工人撰写:

version: '3'
services:
  spring_boot_com_mysql:
    build:
        context: ./
        dockerfile: ./Dockerfile
    image: spring_boot_com_mysql/api
    ports:
      - '8080:8080'
      - '5005:5005'
    environment:
      - ADDITIONAL_OPTS=-agentlib:jdwp=transport=dt_socket, server=y, suspend=n, address=*:5005 -Xmx16 -Xms128m -XX:MaxMetaspaceSize=128m
      - PROFILE=dev
    links:
      - db
  db:
    image: mysql:latest
    ports:
      - '3306:3306'
    environment:
      - MYSQL_ROOT_HOST=%
      - MYSQL_DATABASE=spring_boot_mysql
      - MYSQL_USER=root
      - MYSQL_ALLOW_EMPTY_PASSWORD=yes
    volumes:
      - ./docker/volume_mysql:/var/lib/mysql

应用程序属性

spring.datasource.url=jdbc:mysql://db:3306/spring_boot_mysql
spring.datasource.username=root
spring.datasource.password=admin
spring.datasource.name=SpringBootMySqlDataSource
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.show-sql=true

spring.datasource.hikari.pool-name=SpringBootMySqlPool
spring.datasource.hikari.connection-test-query=select now();
spring.datasource.hikari.maximum-pool-size=5
spring.datasource.hikari.minimum-idle=1
spring.datasource.hikari.connection-timeout=20000
spring.datasource.hikari.idle-timeout=10000

完整错误:

最后一个成功发送到服务器的数据包是 0 毫秒前。驱动程序没有收到来自服务器的任何数据包。spring_boot_com_mysql_1 | 在 com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174) ~[mysql-connector-java-8.0.22.jar!/:8.0.22] spring_boot_com_mysql_1 | 在 com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64) ~[mysql-connector-java-8.0.22.jar!/:8.0.22] spring_boot_com_mysql_1 | 在 com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:836) ~[mysql-connector-java-8.0.22.jar!/:8.0.22] spring_boot_com_mysql_1 | 在 com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:456) ~[mysql-connector-java-8.0.22.jar!/:8.0.22] spring_boot_com_mysql_1 | 在 com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java: 246) ~[mysql-connector-java-8.0.22.jar!/:8.0.22] spring_boot_com_mysql_1 | 在 com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) ~[mysql-connector-java-8.0.22.jar!/:8.0.22] spring_boot_com_mysql_1 | 在 com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) ~[HikariCP-3.4.5.jar!/:na] spring_boot_com_mysql_1 | 在 com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:358) ~[HikariCP-3.4.5.jar!/:na] spring_boot_com_mysql_1 | 在 com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206) ~[HikariCP-3.4.5.jar!/:na] spring_boot_com_mysql_1 | 在 com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:477) ~[HikariCP-3.4.5.jar!/:na] spring_boot_com_mysql_1 | 在 com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:560) ~[HikariCP-3.4.5.jar!/:na] spring_boot_com_mysql_1 | 在 com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:115) ~[HikariCP-3.4.5.jar!/:na] spring_boot_com_mysql_1 | 在 com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) ~[HikariCP-3.4.5.jar!/:na] spring_boot_com_mysql_1 | 在 org.flywaydb.core.internal.jdbc.JdbcUtils.openConnection(JdbcUtils.java:57) ~[flyway-core-7.1.1.jar!/:na] spring_boot_com_mysql_1 | 在 org.flywaydb.core.internal.jdbc.JdbcConnectionFactory.(JdbcConnectionFactory.java:69) ~[flyway-core-7.1.1.jar!/:na] spring_boot_com_mysql_1 | 在 org.flywaydb.core.Flyway.execute(Flyway.java:475) ~[flyway-core-7.1.1.jar!/:na] spring_boot_com_mysql_1 | 在 org.flywaydb.core.Flyway.migrate(Flyway.java:164) ~[flyway-core-7.1.1.jar!/:na] spring_boot_com_mysql_1 | 在 org.springframework.boot.autoconfigure。flyway.FlywayMigrationInitializer.afterPropertiesSet(FlywayMigrationInitializer.java:66) ~[spring-boot-autoconfigure-2.4.0.jar!/:2.4.0] spring_boot_com_mysql_1 | 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1847) ~[spring-beans-5.3.1.jar!/:5.3.1] spring_boot_com_mysql_1 | 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1784) ~[spring-beans-5.3.1.jar!/:5.3.1] spring_boot_com_mysql_1 | 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:609) ~[spring-beans-5.3.1.jar!/:5.3.1] spring_boot_com_mysql_1 | 在 org.springframework.beans.factory.support。AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:531) ~[spring-beans-5.3.1.jar!/:5.3.1] spring_boot_com_mysql_1 | 在 org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.1.jar!/:5.3.1] spring_boot_com_mysql_1 | 在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.1.jar!/:5.3.1] spring_boot_com_mysql_1 | 在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.1.jar!/:5.3.1] spring_boot_com_mysql_1 | 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.1.jar!/:5.3. 1] spring_boot_com_mysql_1 | 在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) ~[spring-beans-5.3.1.jar!/:5.3.1] spring_boot_com_mysql_1 | 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.1.jar!/:5.3.1] spring_boot_com_mysql_1 | 在 org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1161) ~[spring-context-5.3.1.jar!/:5.3.1] spring_boot_com_mysql_1 | 在 org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:915) ~[spring-context-5.3.1.jar!/:5.3.1] spring_boot_com_mysql_1 | 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext. java:588) ~[spring-context-5.3.1.jar!/:5.3.1] spring_boot_com_mysql_1 | 在 org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:144) ~[spring-boot-2.4.0.jar!/:2.4.0] spring_boot_com_mysql_1 | 在 org.springframework.boot.SpringApplication.refresh(SpringApplication.java:767) ~[spring-boot-2.4.0.jar!/:2.4.0] spring_boot_com_mysql_1 | 在 org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759) ~[spring-boot-2.4.0.jar!/:2.4.0] spring_boot_com_mysql_1 | 在 org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:426) ~[spring-boot-2.4.0.jar!/:2.4.0] spring_boot_com_mysql_1 | 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:326) ~[spring-boot-2.4.0.jar!/:2.4. 0] spring_boot_com_mysql_1 | 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:1309) ~[spring-boot-2.4.0.jar!/:2.4.0] spring_boot_com_mysql_1 | 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:1298) ~[spring-boot-2.4.0.jar!/:2.4.0] spring_boot_com_mysql_1 | 在 com.telles.loteriasapi.LoteriasApiApplication.main(LoteriasApiApplication.java:10) ~[classes!/:0.0.1-SNAPSHOT] spring_boot_com_mysql_1 | 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] spring_boot_com_mysql_1 | 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na] spring_boot_com_mysql_1 | 在 java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na: na] spring_boot_com_mysql_1 | 在 java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na] spring_boot_com_mysql_1 | 在 org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49) ~[app.jar:0.0.1-SNAPSHOT] spring_boot_com_mysql_1 | 在 org.springframework.boot.loader.Launcher.launch(Launcher.java:107) ~[app.jar:0.0.1-SNAPSHOT] spring_boot_com_mysql_1 | 在 org.springframework.boot.loader.Launcher.launch(Launcher.java:58) ~[app.jar:0.0.1-SNAPSHOT] spring_boot_com_mysql_1 | 在 org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88) ~[app.jar:0. 1-SNAPSHOT] spring_boot_com_mysql_1 | 在 org.springframework.boot.loader.Launcher.launch(Launcher.java:107) ~[app.jar:0.0.1-SNAPSHOT] spring_boot_com_mysql_1 | 在 org.springframework.boot.loader.Launcher.launch(Launcher.java:58) ~[app.jar:0.0.1-SNAPSHOT] spring_boot_com_mysql_1 | 在 org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88) ~[app.jar:0. 1-SNAPSHOT] spring_boot_com_mysql_1 | 在 org.springframework.boot.loader.Launcher.launch(Launcher.java:107) ~[app.jar:0.0.1-SNAPSHOT] spring_boot_com_mysql_1 | 在 org.springframework.boot.loader.Launcher.launch(Launcher.java:58) ~[app.jar:0.0.1-SNAPSHOT] spring_boot_com_mysql_1 | 在 org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88) ~[app.jar:0.

标签: mysqlspring-bootdockerdocker-compose

解决方案


推荐阅读