ホームページ >データベース >mysql チュートリアル >Docker 化された Spring Boot アプリで MySQL に接続すると「通信リンク障害」が発生するのはなぜですか?

Docker 化された Spring Boot アプリで MySQL に接続すると「通信リンク障害」が発生するのはなぜですか?

DDD
DDDオリジナル
2024-11-02 18:11:29358ブラウズ

Why Does My Dockerized Spring Boot App Get

Docker 化された Spring Boot、MySQL、および Hibernate: 「通信リンク障害」のトラブルシューティング

Docker 内で MySQL を使用して Spring Boot アプリケーションを実行する場合コンテナーでは、アプリとデータベース間の接続の問題により、「通信リンク障害」エラーが発生する可能性があります。これは、アプリケーションの構成で正しいデータベース ホスト名が使用されていることを確認することで解決できます。

提供された構成では、createConnection メソッドは JDBC URL の localhost ホスト名を使用します。これはホスト マシンを指しますが、MySQL Docker イメージが実行されている場所ではありません。

問題を解決するには、Spring Boot アプリケーションの環境設定で MySQL イメージのホスト名を使用するように Docker Compose ファイルを変更する必要があります。更新された 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 接続で使用されます。これにより通信の問題が解決され、アプリケーションがデータベースに正常に接続できるようになります。

以上がDocker 化された Spring Boot アプリで MySQL に接続すると「通信リンク障害」が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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