无法从本地机器连接到远程 Dockerized MySQL 容器

无法从本地机器连接到远程 Dockerized MySQL 容器

我无法从本地计算机进行远程连接,一切正常,但突然它不再让我访问 mysql 数据库。我尝试了所有可能的组合,但都不起作用。

我有我的个人电脑笔记本电脑运行 Windows 10/11 和 WSL2(Ubuntu 22.04)。我在 Digitalocean 有一个 droplet(VPS),运行 Ubuntu 和 Docker。有 3 个不同的 docker 容器正在启动(服务器、数据库和客户端)。它们可以毫无问题地相互通信。

当我想从我的笔记本电脑(Win 11 WSL2)连接到运行 mysql 的 docker“数据库”容器时,它不起作用。端口已打开并暴露给主机。

它只在我使用 Datagrip 软件从我的电脑连接时才有效,该软件在出现问题之前已配置好,但不知何故它仍然有效并允许我连接到数据库。这意味着它配置正确,但我无法从其他机器连接。

我是否遗漏了什么?

这是我的docker-compose.yml

version: '3.9'

services:
  api:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: api
    restart: on-failure
    env_file: .env
    environment:
      - DB_HOST=mysql
    volumes:
      - .:/app
    ports:
      - ${APP_PORT}:${APP_PORT}
      - ${WSS_PORT}:${WSS_PORT}
    depends_on:
      - mysql
    networks:
      - appnet
    cpus: 0.4
    mem_reservation: '512M'
    mem_limit: '1152M'

  mysql:
    image: mysql:8.0
    container_name: mysql
    command: mysqld --default-authentication-plugin=caching_sha2_password
    restart: always
    env_file: .env
    environment:
      - MYSQL_ROOT_HOST=%
      - MYSQL_ROOT_PASSWORD=${DB_PASSWORD}
      - MYSQL_DATABASE=${DB_NAME}
      - MYSQL_USER=${DB_USERNAME}
      - MYSQL_PASSWORD=${DB_PASSWORD}
    volumes:
      - mysql-data:/var/lib/mysql
    ports:
      - ${DB_PORT}:${DB_PORT}
    networks:
      - appnet
    cpus: 0.4
    mem_reservation: '256M'
    mem_limit: '512M'

networks:
  appnet:

volumes:
  mysql-data:

相关内容