Spring Boot、MySQL、Docker、Hibernate 通訊鏈路失敗
問題:
運行時使用🎜>
Communications link failure java.net.ConnectException: Connection refused
運行時使用Docker Compose 運行具有Hibernate 和MySQL 的Spring Boot應用程式時,會出現錯誤並顯示以下訊息:
當應用程式嘗試建立一個連接到 MySQL 資料庫時。 jdbc:mysql://localhost/database 中的連線 URL 指的是本機,這不是 Docker 容器內的正確位址。
解決此問題問題,應更新 JDBC 連線和 Spring Boot 設定 (application.properties) 中的連線 URL 以指向 MySQL 容器的位址。
<code class="java">private Connection createConnection() throws SQLException { DriverManager.registerDriver(new com.mysql.jdbc.Driver()); String mysqlUrl = "jdbc:mysql://docker-mysql:3306/database?autoReconnect=true&useSSL=false"; Connection connection = DriverManager.getConnection(mysqlUrl, "root", "root"); return connection; }</code>JDBC 連接:
<code class="properties">spring.datasource.url=jdbc:mysql://docker-mysql:3306/database?autoReconnect=true&useSSL=false spring.datasource.username=root spring.datasource.password=root</code>Spring Boot 配置(application.properties):
<code class="yaml">services: docker-mysql: image: mysql:5.7 ports: - 3307:3306</code>
確保Docker Compose 配置正確定義了MySQL 容器的連接埠對映:
<code class="yaml">app: image: app:latest ports: - 8091:8091 depends_on: - docker-mysql</code>並且應用程式容器依賴MySQL 容器:
以上是如何修復在 Docker 化的 Spring Boot 應用程式中連接到 MySQL 時出現「通訊鏈路故障」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!