springboot应用程序无法与docker上运行的sql数据库建立连接
P粉156532706
P粉156532706 2023-08-29 09:43:41
0
1
437
<p>我有一个在 localhost 中运行的项目,使用 intellij 作为 Springboot 实例、使用 Xampp 的 SQL 没有任何问题。这工作得很好。但现在我想将所有内容都部署到 docker 上。所以我在我的目录中创建了一个 dockerfile 和一个 docker-compose up 文件,如下所示:</p> <pre class="brush:php;toolbar:false;">-Application | -Frontend (not in docker implemented yet) -Backend (springAPI) | -dockerfile -Python (flaskAPI) (not in docker implemented yet) docker-compose.yml</pre> <p>docker-compose.yml 如下所示:</p> <pre class="brush:php;toolbar:false;">version: '3.9' services: db: image: mysql:latest restart: always environment: MYSQL_ROOT_PASSWORD: &lt;pass&gt; MYSQL_DATABASE: mydb MYSQL_USER: &lt;user&gt; MYSQL_PASSWORD: &lt;pass&gt; ports: - &quot;3306:3306&quot; volumes: - ./data:/var/lib/mysql phpmyadmin: image: phpmyadmin/phpmyadmin:latest restart: always depends_on: - db ports: - &quot;8888:80&quot; environment: PMA_HOST: db MYSQL_ROOT_PASSWORD: example spring-api: image: spring-api:latest ports: - &quot;8080:8080&quot; depends_on: - db volumes: dbdata: mysql-data:</pre> <p>springapi 的 dockerfile 如下所示:</p> <pre class="brush:php;toolbar:false;"># Use an official OpenJDK runtime as a parent image FROM openjdk:17-jdk-slim # Set the working directory to /app WORKDIR /app # Copy the application jar file to the container COPY build/libs/backendAPI.jar backendAPI.jar # Run the application CMD [&quot;java&quot;, &quot;-jar&quot;, &quot;backendAPI.jar&quot;]</pre> <p>这可以由 docker 组成并运行容器。 java spring boot 如何抛出错误并关闭。错误是:</p> <pre class="brush:php;toolbar:false;">`2023-03-06T12:25:37.603Z INFO 1 --- [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... 2023-03-06T12:25:38.685Z ERROR 1 --- [ main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization. com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.`</pre> <p>我尝试像这样重新配置我的 application.settings :</p> <pre class="brush:php;toolbar:false;">spring.datasource.url=jdbc:mysql://localhost:8888/mydb spring.datasource.username=&lt;theusername&gt; spring.datasource.password=&lt;thepassword&gt; spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver</pre> <p>但是没有效果。因为它一直抛出相同的错误。可以通过给定的 url 访问 SQL 服务器。所以运行良好(除了没有管理员权限,但这是一个不同的问题。)</p> <p>当我只使用 Xammp 和 intellij 时,这个设置对 application.settings 进行了一些调整,效果很好。但现在我无法连接它。我在这里缺少什么?</p> <p><strong>编辑我迄今为止尝试过的内容</strong></p> <pre class="brush:php;toolbar:false;">db: image: mysql:latest restart: always container_name: sql-db</pre> <p>然后更改 application.settings:</p> <pre class="brush:php;toolbar:false;">spring.datasource.url=jdbc:mysql://sql-db:8888/mydb (and also with sql-db:3306)</pre> <p>但这仍然给出相同的错误。</p>
P粉156532706
P粉156532706

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!