运行mysql映像的最新版本 不重复这个问题
docker run -d --name=docker-mysql --env="MYSQL_ROOT_PASSWORD=test123" --env="MYSQL_USER=user1" --env="MYSQL_PASSWORD=test123" --env="MYSQL_DATABASE=dockertest" -p 3306:3306 mysql
运行Spring引导应用程序映像:
docker run -t -p 8080:8080 --link docker-mysql:mysql docker-userapp
注意:
看起来,MySQL容器是可以的,但不知怎么的,spring引导无法访问数据库。我是新来码头的。请建议我需要换什么?
spring application.properties文件:
spring.jpa.hibernate.ddl-auto=update
server.servlet.contextPath=/docker-api
spring.datasource.url=jdbc:mysql://localhost:3306/dockertest
spring.datasource.username=user1
spring.datasource.password=test123
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL8Dialect
spring.jpa.properties.hibernate.dialect.storage_engine=innodb
spring.jpa.properties.hibernate.format_sql=true
spring.jpa.properties.hibernate.id.new_generator_mappings=true
spring.jpa.hibernate.naming.implicit-strategy=org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyJpaImpl
spring.jpa.show-sql=true
错误日志:
2021-12-06 12:46:18.386 INFO 1--主com.zaxxer.hikari.HikariDataSource : HikariPool-1 -开始.2021-12-06 12:46:18.389警告1--主com.zaxxer.hikari.util.DriverDataSource :没有找到带有driverClassName=com.mysql.jdbc.Driver的注册驱动程序,尝试直接实例化。2021-12-06 12:46:19.505错误1--主com.zaxxer.hikari.pool.HikariPool : HikariPool-1 -池初始化期间的异常. com.mysql.cj.jdbc.exceptions.CommunicationsException:通信链路故障 最后一个成功发送到服务器的数据包是0毫秒前。驱动程序尚未收到来自服务器的任何数据包。在com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174) ~mysql-连接器-java-8.0.27.jar!/:8.0.27在com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64) ~mysql-连接器-java-8.0.27.jar!/:8.0.27在com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:828) ~mysql-连接器-java-8.0.27.jar!/:8.0.27在com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:448) ~mysql-连接器-java-8.0.27.jar!/:8.0.27在com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241) ~mysql-连接器-java-8.0.27.jar!/:8.0.27在com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) ~mysql连接器-java-8.0.27.jar在com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) ~HikariCP-4.0.3.jar!/:na在com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:364) ~HikariCP-4.0.3.jar!/:na在com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206) ~HikariCP-4.0.3.jar!/:na在com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:476) HikariCP-4.0.3.jar!/:na at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) HikariCP-4.0.3.jar!/:na at com.zaxxer.hikari.pool.HikariPool.(HikariPool.java:115) HikariCP-4.0.3.jar!/:na at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) HikariCP-4.0.3.jar!/:na在org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122) hibernate-核-5.6.1.final.jar!org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:181) hibernate的/:5.6.1.Final-5.6.1.Final.jar!org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:68) hibernate的/:5.6.1.Final-核心-5.6.1.final.jar!org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35) hibernate的/:5.6.1.Final--5.6.1.final.jar!/:5.6.1.Final
发布于 2021-12-06 13:34:44
此错误意味着您没有驱动程序依赖项作为您的APP.jar库的一部分,该库正在码头上运行。
首先,查看您的/target/app.jar
,解压缩这个jar并查看它是否是一个胖jar,这意味着它在那里有所有必需的依赖项。
看看是否能在那里找到jar mysql-connector-java
,这就是您所缺少的。
Maven:
https://mvnrepository.com/artifact/mysql/mysql-connector-java
https://stackoverflow.com/questions/70245942
复制相似问题