ホームページ  >  記事  >  データベース  >  Docker と MySQL を使用した Spring Boot で「通信リンク障害」を修正する方法は?

Docker と MySQL を使用した Spring Boot で「通信リンク障害」を修正する方法は?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-02 10:06:31433ブラウズ

How to Fix

一般的なエラー: Docker および MySQL を使用した Spring Boot での通信リンク障害

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。