繁体   English   中英

我无法使用 DataGrip 数据库客户端从本地主机连接到 docker 中的 mysql

[英]I can't connect to mysql in docker from my localhost with DataGrip database client

我有以下docker-compose.yml文件:

version: '3.2'

services:

  mysql:
    image: mysql:5.7
    environment:
      - MYSQL_ROOT_PASSWORD=verysecret
      - MYSQL_DATABASE=yii2advanced
      - MYSQL_USER=yii2advanced
      - MYSQL_PASSWORD=secret

我通过docker-compose up -d运行它。 但我无法从 SQL 客户端连接到我的数据库(我使用 JetBrains 的 DataGrip)。 这是我的配置:

在此处输入图像描述

密码当然是secret的。 我已经尝试为yii2advanced用户检查允许的主机:

在此处输入图像描述

正如你所看到的,我的yii2advanced连接是允许来自任何主机的。 我试图更改mysqld.cnf并设置bind-address = 0.0.0.0 试图将bind-address设置为* 尝试在我的 SQL 客户端的设置中设置不是127.0.0.1而是172.17.0.1 试图手动创建一个具有完全权限的新用户。 没有效果。 问题依然存在。 我无法从本地主机连接到容器中的 mysql。

怎么了?

默认情况下,docker-compose 创建一个桥接网络,它将您的应用程序与包括本地主机在内的外部隔离。
您需要将 3306 端口从隔离网络公开到 localhost。
尝试这个。

version: '3.2'

services:

  mysql:
    image: mysql:5.7
    environment:
      - MYSQL_ROOT_PASSWORD=verysecret
      - MYSQL_DATABASE=yii2advanced
      - MYSQL_USER=yii2advanced
      - MYSQL_PASSWORD=secret
    ports:
      - 3306:3306 # <host port>:<container port>

好读 docker 网络部分。 https://docs.docker.com/network/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM