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