ホームページ >データベース >mysql チュートリアル >Docker化されたSpring BootアプリケーションでMySQLに接続するときに発生する「通信リンク障害」エラーを修正する方法は?
Spring Boot、MySQL、Docker、Hibernate での通信リンク障害
問題:
実行時Docker Compose を使用して Hibernate と MySQL を備えた Spring Boot アプリケーションを実行すると、次のメッセージでエラーが発生します:
Communications link failure java.net.ConnectException: Connection refused
詳細:
アプリケーションがMySQL データベースへの接続。 jdbc:mysql://localhost/database の接続 URL はローカル ホストを参照していますが、これは Docker コンテナ内の正しいアドレスではありません。
解決策:
これを解決するにはこの問題を解決するには、JDBC 接続の接続 URL と Spring Boot 構成 (application.properties) を、MySQL コンテナーのアドレスを指すように更新する必要があります。
JDBC 接続:
<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>
Spring Boot 構成 (application.properties):
<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>
Docker Compose 構成 (docker-compose.yml):
Docker Compose 設定では、MySQL コンテナのポート マッピングが正しく定義されています:
<code class="yaml">services: docker-mysql: image: mysql:5.7 ports: - 3307:3306</code>
、およびアプリケーション コンテナが MySQL コンテナに依存していること:
<code class="yaml">app: image: app:latest ports: - 8091:8091 depends_on: - docker-mysql</code>
以上がDocker化されたSpring BootアプリケーションでMySQLに接続するときに発生する「通信リンク障害」エラーを修正する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。