Docker 環境内で Spring Boot、Hibernate、および MySQL を利用している開発者は、次のような一般的な問題に遭遇する可能性があります。このエラー メッセージの内容:
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure java.net.ConnectException: Connection refused.
このエラーは通常、JDBC URL 内のホスト参照が正しくないことが原因で発生します。これを解決するには、Docker 環境内の正しいデータベース ホスト名を指すように JDBC URL を変更することが重要です。
解決策の明確なデモは次のとおりです。
1. Docker Compose 構成:
提供された docker-compose.yml ファイルは、MySQL データベース コンテナーのホストとして localhost を使用しますが、これは 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 データベースへの接続を正常に確立できるようになります。
以上がDocker と MySQL を使用した Spring Boot で「通信リンク障害」を修正する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。