在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中文網其他相關文章!