首页 > 解决方案 > 使用 docker-compose 时 Spring Boot 和 MySQL 无法在 Docker 上连接 - 显示“无法创建/设置连接:通信链接失败”

问题描述

我只是想使用 Docker 设置一个基于 Spring Boot 和 MySQL 的入门项目。所以我尝试在 Docker 上运行这个github 项目。但我无法在 Java 和 MySQL 之间建立连接。

我正在运行 Ubuntu 16.04。

我在执行“docker-compose up”命令时收到“无法创建/设置连接:通信链接故障....”错误。

如果我使用 Docker 客户端,也不会出现此错误。就像我这样做:

# 1. docker run -d -p 6033:3306 --name=docker-mysql --env="MYSQL_ROOT_PASSWORD=root" --env="MYSQL_PASSWORD=root" --env="MYSQL_DATABASE=book_manager" mysql
# 2. docker build -t springio/gs-spring-boot-docker .
# 3. docker run -t --link docker-mysql:mysql -p 10222:10222 springio/gs-spring-boot-docker

我试图通过 docker-compose 设置相同的环境,但不知何故它不起作用。

下面是配置细节:

应用程序属性

logging.level.org.springframework=INFO
logging.level.com.mkyong=INFO
logging.level.com.zaxxer=DEBUG
logging.level.root=ERROR

logging.pattern.console=%-5level %logger{36} - %msg%n

## MySQL
spring.datasource.url=jdbc:mysql://docker-mysql:3306/book_manager
spring.datasource.username=root
spring.datasource.password=root
server.port=10222
connection.driver.class = com.mysql.jdbc.Driver

hibernate.dialect=org.hibernate.dialect.MySQLDialect

#`hibernate_sequence' doesn't exist
spring.jpa.hibernate.use-new-id-generator-mappings=false

hibernate.show_sql=false

#drop n create table again, good for testing, comment this in production
spring.jpa.hibernate.ddl-auto=create

用于 java 应用程序容器(服务)的 Dockerfile

FROM openjdk:8-jdk-alpine
ARG JAR_FILE=target/*.jar
COPY ${JAR_FILE} spring-data-jpa-mysql-1.0.jar
ENTRYPOINT ["java","-jar","/spring-data-jpa-mysql-1.0.jar"]

码头工人-compose.yml

version: '3'
services:
  docker-mysql:
    restart: always
    container_name: docker-mysql
    image: mysql
    environment:
      MYSQL_DATABASE: book_manager
      MYSQL_ROOT_PASSWORD: root
    ports:
      - "6033:3306"
    networks:
      - spring-boot-mysql-network
  book-manager-app:
    build:
      context: ./
      dockerfile: Dockerfile
    expose:
      - "10222"
    ports:
      - "10222:10222"
    depends_on:
      - "docker-mysql"
    networks:
      - spring-boot-mysql-network
networks:
  spring-boot-mysql-network:
    driver: bridge

以下是我得到的错误日志:

    $/spring-data-jpa-mysql-compose$ docker-compose up

    Creating network "spring-data-jpa-mysql-compose_spring-boot-mysql-network" with driver "bridge"
    Creating docker-mysql ... done
    Creating spring-data-jpa-mysql-compose_book-manager-app_1 ... done
    Attaching to docker-mysql, spring-data-jpa-mysql-compose_book-manager-app_1
    docker-mysql        | 2020-04-07 13:44:39+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.19-1debian10 started.
    docker-mysql        | 2020-04-07 13:44:39+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
    docker-mysql        | 2020-04-07 13:44:39+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 8.0.19-1debian10 started.
    docker-mysql        | 2020-04-07 13:44:39+00:00 [Note] [Entrypoint]: Initializing database files
    docker-mysql        | 2020-04-07T13:44:39.855069Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
    docker-mysql        | 2020-04-07T13:44:39.855190Z 0 [System] [MY-013169] [Server] /usr/sbin/mysqld (mysqld 8.0.19) initializing of server in progress as process 42
    book-manager-app_1  | 
    book-manager-app_1  |   .   ____          _            __ _ _
    book-manager-app_1  |  /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
    book-manager-app_1  | ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
    book-manager-app_1  |  \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
    book-manager-app_1  |   '  |____| .__|_| |_|_| |_\__, | / / / /
    book-manager-app_1  |  =========|_|==============|___/=/_/_/_/
    book-manager-app_1  |  :: Spring Boot ::        (v2.1.2.RELEASE)
    book-manager-app_1  | 
    book-manager-app_1  | INFO  com.mkyong.StartApplication - Starting StartApplication v1.0 on 3638e84181ae with PID 1 (/spring-data-jpa-mysql-1.0.jar started by root in /)
    book-manager-app_1  | INFO  com.mkyong.StartApplication - No active profile set, falling back to default profiles: default
    book-manager-app_1  | INFO  o.s.d.r.c.RepositoryConfigurationDelegate - Bootstrapping Spring Data repositories in DEFAULT mode.
    book-manager-app_1  | INFO  o.s.d.r.c.RepositoryConfigurationDelegate - Finished Spring Data repository scanning in 134ms. Found 1 repository interfaces.
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - Driver class com.mysql.cj.jdbc.Driver found in Thread context class loader org.springframework.boot.loader.LaunchedURLClassLoader@5d099f62
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - HikariPool-1 - configuration:
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - allowPoolSuspension.............false
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - autoCommit......................true
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - catalog.........................none
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - connectionInitSql...............none
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - connectionTestQuery.............none
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - connectionTimeout...............30000
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - dataSource......................none
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - dataSourceClassName.............none
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - dataSourceJNDI..................none
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - dataSourceProperties............{password=<masked>}
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - driverClassName................."com.mysql.cj.jdbc.Driver"
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - healthCheckProperties...........{}
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - healthCheckRegistry.............none
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - idleTimeout.....................600000
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - initializationFailTimeout.......1
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - isolateInternalQueries..........false
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - jdbcUrl.........................jdbc:mysql://docker-mysql:3306/book_manager
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - leakDetectionThreshold..........0
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - maxLifetime.....................1800000
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - maximumPoolSize.................10
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - metricRegistry..................none
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - metricsTrackerFactory...........none
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - minimumIdle.....................10
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - password........................<masked>
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - poolName........................"HikariPool-1"
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - readOnly........................false
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - registerMbeans..................false
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - scheduledExecutor...............none
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - schema..........................none
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - threadFactory...................internal
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - transactionIsolation............default
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - username........................"root"
    book-manager-app_1  | DEBUG com.zaxxer.hikari.HikariConfig - validationTimeout...............5000
    book-manager-app_1  | INFO  com.zaxxer.hikari.HikariDataSource - HikariPool-1 - Starting...
    book-manager-app_1  | DEBUG com.zaxxer.hikari.pool.PoolBase - HikariPool-1 - Failed to create/setup connection: Communications link failure
    book-manager-app_1  | 
    book-manager-app_1  | The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    book-manager-app_1  | DEBUG com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Cannot acquire connection from data source
    book-manager-app_1  | com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
    book-manager-app_1  | 
    book-manager-app_1  | The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    book-manager-app_1  |   at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174)
    book-manager-app_1  |   at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64)
    book-manager-app_1  |   at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835)
    book-manager-app_1  |   at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:455)
    book-manager-app_1  |   at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240)
    book-manager-app_1  |   at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:207)
    book-manager-app_1  |   at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:136)
    book-manager-app_1  |   at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:369)
    book-manager-app_1  |   at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:198)
    book-manager-app_1  |   at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:467)
    book-manager-app_1  |   at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:541)
    book-manager-app_1  |   at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115)
    book-manager-app_1  |   at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112)
    book-manager-app_1  |   at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:157)
    book-manager-app_1  |   at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:115)
    book-manager-app_1  |   at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:78)
    book-manager-app_1  |   at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:319)
    book-manager-app_1  |   at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:356)
    book-manager-app_1  |   at org.springframework.boot.autoconfigure.orm.jpa.DatabaseLookup.getDatabase(DatabaseLookup.java:73)
    book-manager-app_1  |   at org.springframework.boot.autoconfigure.orm.jpa.JpaProperties.determineDatabase(JpaProperties.java:142)
    book-manager-app_1  |   at org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration.jpaVendorAdapter(JpaBaseConfiguration.java:112)
    book-manager-app_1  |   at org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaConfiguration$$EnhancerBySpringCGLIB$$ff868e63.CGLIB$jpaVendorAdapter$8(<generated>)
    book-manager-app_1  |   at org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaConfiguration$$EnhancerBySpringCGLIB$$ff868e63$$FastClassBySpringCGLIB$$5875e117.invoke(<generated>)
    book-manager-app_1  |   at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:244)
    book-manager-app_1  |   at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:363)
    book-manager-app_1  |   at org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaConfiguration$$EnhancerBySpringCGLIB$$ff868e63.jpaVendorAdapter(<generated>)
    book-manager-app_1  |   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    book-manager-app_1  |   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    book-manager-app_1  |   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    book-manager-app_1  |   at java.lang.reflect.Method.invoke(Method.java:498)
    book-manager-app_1  |   at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:154)
    book-manager-app_1  |   at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:105)
    book-manager-app_1  |   at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151)
    book-manager-app_1  |   at com.mysql.cj.exceptions.ExceptionFactory.createCommunicationsException(ExceptionFactory.java:167)
    book-manager-app_1  |   at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:91)
    book-manager-app_1  |   at com.mysql.cj.NativeSession.connect(NativeSession.java:152)
    book-manager-app_1  |   at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:955)
    book-manager-app_1  |   at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:825)
    book-manager-app_1  |   ... 83 common frames omitted
    book-manager-app_1  | Caused by: java.net.ConnectException: Connection refused (Connection refused)
    book-manager-app_1  |   at java.net.PlainSocketImpl.socketConnect(Native Method)
    book-manager-app_1  |   at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
    book-manager-app_1  |   at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
    book-manager-app_1  |   at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
    book-manager-app_1  |   at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    book-manager-app_1  |   at java.net.Socket.connect(Socket.java:589)
    book-manager-app_1  |   at com.mysql.cj.protocol.StandardSocketFactory.connect(StandardSocketFactory.java:155)
    book-manager-app_1  |   at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:65)
    book-manager-app_1  |   ... 86 common frames omitted
    book-manager-app_1  | ERROR com.zaxxer.hikari.pool.HikariPool - HikariPool-1 - Exception during pool initialization.
    book-manager-app_1  | com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure
    book-manager-app_1  | 
    book-manager-app_1  | The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.
    book-manager-app_1  |   at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174)
    book-manager-app_1  |   at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64)
    book-manager-app_1  |   at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835)
    book-manager-app_1  |   at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:455)
    book-manager-app_1  |   at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240)
    book-manager-app_1  |   at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:207)
    book-manager-app_1  |   at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:136)
    book-manager-app_1  |   at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:369)
    book-manager-app_1  |   at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:198)
    book-manager-app_1  |   at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:467)
    book-manager-app_1  |   at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:541)
    book-manager-app_1  |   at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115)
    book-manager-app_1  |   at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112)
    book-manager-app_1  |   at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:157)
    book-manager-app_1  |   at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:115)
    book-manager-app_1  |   at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:78)
    book-manager-app_1  |   at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:319)
    book-manager-app_1  |   at org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData(JdbcUtils.java:356)
    book-manager-app_1  |   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1127)
    book-manager-app_1  |   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:538)
    book-manager-app_1  |   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:498)
    book-manager-app_1  |   at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:320)
    book-manager-app_1  |   at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
    book-manager-app_1  |   at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:318)
    book-manager-app_1  |   at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)
    book-manager-app_1  |   at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1083)
    book-manager-app_1  |   at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:853)
    book-manager-app_1  |   at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546)
    book-manager-app_1  |   at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775)
    book-manager-app_1  |   at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)
    book-manager-app_1  |   at org.springframework.boot.SpringApplication.run(SpringApplication.java:316)
    book-manager-app_1  |   at org.springframework.boot.SpringApplication.run(SpringApplication.java:1260)
    book-manager-app_1  |   at org.springframework.boot.SpringApplication.run(SpringApplication.java:1248)
    book-manager-app_1  |   at com.mkyong.StartApplication.main(StartApplication.java:19)
    book-manager-app_1  |   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    book-manager-app_1  |   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    book-manager-app_1  |   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    book-manager-app_1  |   at java.lang.reflect.Method.invoke(Method.java:498)
    book-manager-app_1  |   at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
    book-manager-app_1  |   at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
    book-manager-app_1  |   at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
    book-manager-app_1  |   at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)
    book-manager-app_1  | Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure

    book-org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263)
    book-manager-app_1  |   at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:237)
    book-manager-app_1  |   at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214)
    book-manager-app_1  |   at org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.injectServices(DefaultIdentifierGeneratorFactory.java:152)
    book-manager-app_1  |   at org.hibernate.service.internal.AbstractServiceRegistryImpl.injectDependencies(AbstractServiceRegistryImpl.java:286)
    book-manager-app_1  |   at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:243)
    book-manager-app_1  |   at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214)
    book-manager-app_1  |   at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMertiesSet(AbstractEntityManagerFactoryBean.java:377)
    book-manager-app_1  |   at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341)
    book-manager-app_1  |   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1804)
    book-manager-app_1  |   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1741)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    book-manager-app_1  |   at java.lang.reflect.Method.invoke(Method.java:498)
    book-manager-app_1  |   at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:48)
    book-manager-app_1  |   at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
    book-manager-app_1  |   at org.springframework.boot.loader.Launcher.launch(Launcher.java:50)
    com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:151)
    book-manager-app_1  |   at com.cketImpl.java:392)
    book-manager-app_1  |   at java.net.Socket.connect(Socket.java:589)
    book-manager-app_1  |   at com.mysql.cj.protocol.StandardSocketFactory.connect(StandardSocketFactory.java:155)
    book-manager-app_1  |   at com.mysql.cj.protocol.a.NativeSocketConnection.connect(NativeSocketConnection.java:65)
    book-manager-app_1  |   ... 59 common frames omitted
    book-manager-app_1  | WARN  o.s.c.a.AnnotationConfigApplicationContext - Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
    book-manager-app_1  | INFO  o.s.b.a.l.ConditionEvaluationReportLoggingListener - 
    book-manager-app_1  | 
    book-manager-app_1  | Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
    book-manager-app_1  | ERROR o.s.boot.SpringApplication - Application run failed
    book-manager-app_1  | org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
    book-manager-app_1  |   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1745)
    book-manager-app_1  |   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:576)
    book-manager-app_1  |   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(Abstractorg.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:853)
    book-manager-app_1  |   at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546)
    book-manager-app_1  |   at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775)
    book-manager-app_1  |   at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:397)
org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:51)
    book-manager-app_1  | Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
    book-manager-app_1  |   at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:275)
    book-manager-app_1  |   at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:237)
    book-manager-app_1  |   at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214)
    book-manager-app_1  |   at org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.injectServices(DefaultIdentityManagerFactoryBuilderImpl.java:904)
    book-manager-app_1  |   at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:935)
    book-manager-app_1  |   at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityMaAbstractEntityManagerFactoryBean.java:377)
    book-manager-app_1  |   at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341)
    book-manager-app_1  |   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1804)
    book-manager-app_1  |   at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1741)
    book-manager-app_1  |   ... 23 common frames omitted
    book-manager-app_1  | Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set
    book-manager-app_1  |   at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImporg.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:94)
    book-manager-app_1  |   at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263)
    book-manager-app_1  |   ... 40 common frames omitted
    spring-data-jpa-mysql-compose_book-manager-app_1 exited with code 1

标签: javamysqlspring-bootdockerdocker-compose

解决方案


推荐阅读