[英]SpringBoot within Docker Container cannot connect to localhost MySQL on Windows machine
[英]How to connect to MySQL server on localhost from inside of a Docker container in a windows machine?
我在 Linux 上看到了另一张票。 我的问题是在 Windows 上。
我希望在 Container 内运行的 Java 代码连接到localhost
或127.0.0.1
上的 MySQL。
我可以使用localhost
或127.0.0.1
从主机连接到 MySQL,但不能从容器内连接。
我也试过网络选项--net="host"
。
您可以使用此主机名从容器内连接到主机上运行的服务: docker.for.win.localhost
net=host 选项不适用于 Windows 的 Docker。
要连接到主机,您需要在docker网络接口上获取主机的ip,并使用该ip进行连接。
在你的 windows 机器上运行命令ipconfig
,并获取 docker 接口的 ip。 在容器内部使用该 IP 连接到主机上运行的 MYSQL。
在类似的情况下,我不得不做两件事:
如前所述在这里,你可能需要打开本地MySQL控制台和特权(用户应该先创建)的MySQL用户:
创建用户 'myuser1'@'192.168.1.123' 由 'pass123' 识别;\n将 *.* 上的所有权限授予 'myuser1'@'192.168.1.123';\n同花顺特权;
(其中192.168.1.123
是一个示例本地网络 IP 地址,随您更改,甚至可能是172.1.xx
-IP 地址,例如172.1.xx
)
然后,在连接到 MySql 主机时,您可能需要使用host.docker.internal:3308
(或任何端口)。 如果这不成功,请在那里也使用本地网络 IP 地址。
如果您尝试从 django docker 容器连接 mysql(windows localhost 中的服务),docker.for.win.localhost 确实有效。 保持'HOST':'docker.for.win.localhost',在setting.py
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.