Rumah > Artikel > pangkalan data > Bagaimana untuk Membetulkan Ralat "Kegagalan Pautan Komunikasi" Semasa Menyambung ke MySQL dalam Aplikasi Boot Spring Dockerized?
Kegagalan Pautan Komunikasi dalam Spring Boot, MySQL, Docker dan Hibernate
Masalah:
Apabila berjalan aplikasi Spring Boot dengan Hibernate dan MySQL menggunakan Docker Compose, ralat berlaku dengan mesej berikut:
Communications link failure java.net.ConnectException: Connection refused
Butiran:
Ralat berlaku apabila aplikasi cuba mewujudkan sambungan ke pangkalan data MySQL. URL sambungan dalam jdbc:mysql://localhost/database merujuk kepada hos setempat, yang bukan alamat yang betul dalam bekas Docker.
Penyelesaian:
Untuk menyelesaikan masalah ini isu, URL sambungan dalam sambungan JDBC dan konfigurasi Spring Boot (application.properties) harus dikemas kini untuk menghala ke alamat bekas MySQL.
Sambungan 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>
Konfigurasi But Spring (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>
Konfigurasi Karang Docker (docker-compose.yml):
Pastikan bahawa konfigurasi Docker Compose dengan betul mentakrifkan pemetaan port untuk bekas MySQL:
<code class="yaml">services: docker-mysql: image: mysql:5.7 ports: - 3307:3306</code>
dan bekas aplikasi bergantung pada bekas MySQL:
<code class="yaml">app: image: app:latest ports: - 8091:8091 depends_on: - docker-mysql</code>
Atas ialah kandungan terperinci Bagaimana untuk Membetulkan Ralat "Kegagalan Pautan Komunikasi" Semasa Menyambung ke MySQL dalam Aplikasi Boot Spring Dockerized?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!