Dockerized Spring Boot、MySQL 和Hibernate:排除「通訊鏈路故障」
在Docker 中執行帶有MyDocker 的Spring Boot SQL在程式時容器中,由於應用程式和資料庫之間的連線問題,可能會遇到「通訊連結失敗」錯誤。透過確保在應用程式的配置中使用正確的資料庫主機名稱可以解決此問題。
在提供的設定中,createConnection 方法在 JDBC URL 中使用 localhost 主機名稱。這是指主機,而不是執行 MySQL Docker 映像的位置。
要解決此問題,應修改 Docker Compose 檔案以在 Spring Boot 應用程式的環境配置中使用 MySQL 映像的主機名稱。這是更新後的 Docker Compose 檔案:
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
透過在 Spring Boot 應用程式的 Docker 映像中指定環境變數 SPRING_DATASOURCE_URL,MySQL 容器 (docker-mysql) 的主機名稱將在 JDBC 連接中使用。這解決了通訊問題並允許應用程式成功連接到資料庫。
以上是為什麼我的 Dockerized Spring Boot 應用程式在連接 MySQL 時會出現「通訊鏈路故障」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!