Home  >  Article  >  Database  >  Why Does My Spring Boot App Get a \"Communications Link Failure\" Error When Connecting to MySQL in Docker?

Why Does My Spring Boot App Get a \"Communications Link Failure\" Error When Connecting to MySQL in Docker?

DDD
DDDOriginal
2024-11-01 16:56:02903browse

Why Does My Spring Boot App Get a

Communications Link Failure in Spring Boot, Hibernate, MySQL, and Docker

When building containerized applications using Docker and the aforementioned technologies, developers often encounter the "Communications link failure" error, indicating a problem with MySQL connectivity. This issue stems from the use of the generic "localhost" reference in the JDBC URL, which becomes invalid within Docker environments.

To rectify this problem, modify the JDBC URL to use the dynamically provided name or IP address of the MySQL container. In the provided "docker-compose.yml" file, edit the "SPRING_DATASOURCE_URL" environment variable in the "app" service:

app:
  image: app:latest
  ports:
    - 8091:8091
  environment:
    SPRING_DATASOURCE_URL: jdbc:mysql://docker-mysql:3306/database?autoReconnect=true&useSSL=false
  depends_on:
    - docker-mysql

This change directs the JDBC URL to connect to the MySQL container using its alias "docker-mysql" and the correct port "3306". By doing so, the error should be resolved, and the application should be able to establish a successful connection to the database.

The above is the detailed content of Why Does My Spring Boot App Get a \"Communications Link Failure\" Error When Connecting to MySQL in Docker?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn