java - 无法从另一个docker容器连接到docker容器中的mysql

标签 java mysql docker

我有两个 docker 容器:mysql 和 spring boot 服务。
服务容器未连接到 mysql 容器(部署失败),出现以下异常: CommunicationsException:通信链路故障
到目前为止,我已经尝试使用 docker --link、docker 网络,使用/不使用 docker compose 运行所有内容。 我能够连接到 docker 外部的数据库容器。

连接字符串:jdbc:mysql://db:3306/somedb

docker-compose.yml

version: '3.7'
services:
  app:
    build: .
    restart: unless-stopped
    ports:
    - "80:8060"
    links:
    - db
    depends_on:
    - db

  db:
    image: "mysql:latest"
    command: --default-authentication-plugin=mysql_native_password
    environment:
    - MYSQL_DATABASE=somedb
    - MYSQL_ROOT_PASSWORD=somepassword
    ports:
    - "3306:3306"
    volumes:
    - /Users/someuser/someproject/mysql/data:/var/lib/mysql

最佳答案

我之前也遇到过同样的问题,我尝试通过更改 mysql 镜像版本来解决。这是我的 compose yaml 文件,我可以将其连接到其中。

version: "3.0"

services:
  spring-boot-container:
    build: .
    ports:
      - "8086:8086"
    links: 
      - mysql-standalone

  mysql-standalone:
    image: mysql:5.6
    ports:
      - "3307:3306"
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: springsecurity
      MYSQL_USER: sa
      MYSQL_PASSWORD: password

关于java - 无法从另一个docker容器连接到docker容器中的mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55679046/

相关文章:

java - 我如何从 R 中提取 RandomForest 用于生产?

php - 在 PHP 中处理用户统计信息的最佳方式是什么

mysql - LEFT JOIN 右表中缺少值

mysql - RODBC 错误 : Could not SQLExecDirect in mysql

docker - Docker为多个不同项目撰写

java - 使用 JNA 库使用 NetShareAdd windows Api 时出现无效参数错误

java - 跨请求将 HashMap Cookie 存储库存储在 Servlet 中

java - 为什么我在 io.datafx 中遇到 java.lang.NullPointerException?

Docker compose 找不到 dart http Web 服务器连接

security - 通过 mitmproxy 运行 docker 容器