JDBC通信链接失败与MySQLdocker容器

当我的Java弹簧应用程序试图连接到数据库时,我得到以下内容:

Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. 

Spring应用程序中的连接URL如下所示:

JDBC:MySQL的:// mysqldbserver:3306 / supersede_orchestrator_spring useSSL =假autoReconnect的=真failOverReadOnly =假maxReconnects为= 10

其中mysqldbserver是docker-compose config中的服务名称:

 version : '3' services: springappserver: build: context: . dockerfile: web.dockerfile ports: - "8081:8080" networks: - mt-network volumes: - .:/vol/development depends_on: - mysqldbserver mysqldbserver: build: context: . dockerfile: db.dockerfile ports: - "13306:3306" networks: - mt-network environment: MYSQL_DATABASE: supersede_orchestrator_spring MYSQL_USER: supersede_orch MYSQL_PASSWORD: **** MYSQL_ROOT_PASSWORD: **** container_name: orchestrator_mysqldbserver networks: mt-network: driver: bridge 

在mysql docker容器中,我已经将绑定地址调整为0.0.0.0。 supersede_orch用户的权限设置为%。 当我连接到springappserverdocker容器,我可以通过telnet mysqldbserver 3306到达数据库,我也可以连接到命令行从springdocker容器的数据库:mysql -h mysqldbserver -u supersede_orch -p。 尽pipejava spring应用程序无法连接到另一个docker容器上运行的数据库。

web.docker文件如下所示:

 FROM java:8-jre VOLUME /tmp ADD build/libs/feedback_orchestrator-2.0.0.jar app.jar RUN apt-get update RUN apt-get install mysql-client -y RUN apt-get install libmysql-java -y RUN bash -c 'touch /app.jar' ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom -Djava.net.preferIPv4Stack=true","-jar","/app.jar"] 

所以,我试图确保java使用IP4来parsingmysqldbserver(我也使用了mysqldbserver的相应的IP地址也失败了)。

最后docker图像-a:

 42db4e656e6e orchestrator_springappserver "java '-Djava.secu..." 16 minutes ago Up 16 minutes 0.0.0.0:8081->8080/tcp orchestrator_springappserver_1 e2b0b5cc15ac orchestrator_mysqldbserver "docker-entrypoint..." 2 hours ago Up About an hour 0.0.0.0:13306->3306/tcp orchestrator_mysqldbserver 

你有什么想法可能是什么问题? 谢谢!

以上configuration是正确的。 我只是愚蠢的忘记重buildjar子。 所以,jdbc url没有更新。 它现在完美的工作。