DataGrip 在 Docker 化环境中无法连接 MySQL 5.7(Mac M1)

问题描述 投票:0回答:1

我需要在 MacBook Air 2020 M1 上安装 MySQL 5.7 才能工作。然而,由于它与架构不兼容,我必须经历一个繁琐的安装过程才能让 Docker 运行。虽然 Docker 现在正在工作,但我遇到了 MySQL DataGrip 错误:

数据库管理系统:MySQL(5.7 版) 区分大小写:普通=混合,分隔=精确 无法读取服务器的响应。预计读取 4 个字节,但在连接意外丢失之前读取了 0 个字节。 我尝试了各种故障排除步骤,包括验证 MySQL 服务器状态、检查 DataGrip 中的连接详细信息、解决防火墙限制以及考虑 MySQL 套接字文件。然而问题依然存在。

这是我的 Docker Compose YAML 文件供参考:

YAML

version: '3'
services:
  mysqlsrv:
    image: mysql:5.7
    environment:
      MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
    ports:
      - '3306:3306'
    volumes:
      - ../.docker/mysqlMySql:/var/lib/mysql
    networks:
      - 
    build: ./
    user: root
    ports:
      - '80:80'
      - '443:443'
    depends_on:
      - mysqlsrv
    volumes:
      - ./:/var/www/html

如果有人能帮助我解决这个问题,我将不胜感激。

我尝试了多种方法来解决 DataGrip 中的 MySQL 连接错误:

验证 MySQL 服务:我检查了 MySQL 服务器是否正在运行且可访问。我期望使用 mysql 命令成功登录,但结果可能会因具体设置而异。

DataGrip 连接详细信息:我确保主机名、端口、用户名和密码与 MySQL 服务器配置匹配。我预计保存配置后会成功连接,但由于其他原因仍然可能会失败。

防火墙限制:我检查了防火墙设置,以允许 MySQL 端口(通常为 3306)上的连接(如果适用)。我预计 DataGrip 的访问不受限制,但防火墙规则可能需要调整。

MySQL 套接字文件:我考虑使用 MySQL 套接字文件路径进行连接,而不是相关的主机名。我希望 DataGrip 使用套接字进行连接,但成功取决于配置。 这些步骤有助于缩小潜在原因的范围,但连接错误仍然存在。

mysql docker dockerfile
1个回答
0
投票

您的

docker-compose.yml
文件似乎无效。但是,如果目标只是在 Docker 中运行 MySQL 并从外部服务 (DataGrip) 连接,那么请尝试以下操作:

version: '3'
services:
  mysqlsrv:
    image: mysql:5.7
    environment:
      MYSQL_ALLOW_EMPTY_PASSWORD: yes
    ports:
      - '3306:3306'

这将允许您直接从主机连接。假设您已安装 MySQL 客户端:

mysql -h 127.0.0.1 -u root

我没有 DataGrip,但我认为连接应该与 DBeaver 类似。请参阅下面的屏幕截图。指定

  • localhost
    或 127.0.0.1 作为服务器主机
  • root
    作为用户名和
  • 将密码字段留空(因为您指定了
    MYSQL_ALLOW_EMPTY_PASSWORD
    )。

© www.soinside.com 2019 - 2024. All rights reserved.