[英]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.