首頁 >資料庫 >mysql教程 >如何修復 Spring Boot 中使用 Docker 和 MySQL 的「通訊鏈路故障」?

如何修復 Spring Boot 中使用 Docker 和 MySQL 的「通訊鏈路故障」?

Patricia Arquette
Patricia Arquette原創
2024-11-02 10:06:31438瀏覽

How to Fix

常見錯誤:Spring Boot 與Docker 和MySQL 的通訊鏈路失敗

在Docker 環境中使用Spring Boot、Hibernate 和MySQL 的開發人員可能會遇到一個常見問題,從而導致在此錯誤訊息中:

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure
java.net.ConnectException: Connection refused.

此錯誤通常源自於JDBC URL 中的錯誤主機參考。要解決此問題,修改 JDBC URL 以指向 Docker 環境中正確的資料庫主機名稱至關重要。

以下是解決方案的清晰示範:

1. Docker Compose 設定:

提供的docker-compose.yml 檔案使用localhost 作為MySQL資料庫容器的主機,這在Docker 環境中是不正確的。

2 。修正的Docker Compose 配置:

要修正此問題,請更新docker-compose.yml 文件,如下所示:

version: '3'

services:
  docker-mysql:
    image: mysql:5.7
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=database
      - MYSQL_USER=root
      - MYSQL_PASSWORD=root
    ports:
      - 3307:3306

  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

在此更新的設定中,主機docker-mysql 指的是MySQL 容器的名稱,確保Docker 環境中的正確連接。

3.更新 Spring Boot 應用程式設定:

從 application.properties 檔案中刪除 spring.datasource.url 屬性。 Spring Boot 將使用環境變數 SPRING_DATASOURCE_URL 來設定 JDBC URL。

透過實現這些更改,應用程式應該能夠在 Docker 環境中與 MySQL 資料庫建立成功的連接。

以上是如何修復 Spring Boot 中使用 Docker 和 MySQL 的「通訊鏈路故障」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn