如何在docker容器中连接外部mysql服务器
Posted
技术标签:
【中文标题】如何在docker容器中连接外部mysql服务器【英文标题】:How to connect external mysql server in docker container 【发布时间】:2015-01-21 22:56:37 【问题描述】:我在 docker 容器中构建了一个 Django 应用程序。并在 ip 192.168.1.13 的服务器上运行它。我将 Django settings.py 设置为连接 192.168.1.6 的 mysql 服务器。它是一个外部独立服务器。但是当我运行容器时,它总是说用户 xxx@192.168.1.13 拒绝访问。 Django如何连接到docker主机ip而不是定义的服务器ip?
任何机构可以帮助我解决这个问题?非常感谢。
有两个服务器。
服务器 A 是 192.168.1.13。上面运行着一个 django docker 容器。
服务器 B 是 192.168.1.6。这是一个mysql服务器。
我希望 django 容器连接服务器 B。但它报告无法连接到其主机服务器。
【问题讨论】:
【参考方案1】:看起来您授予了仅通过 localhost 访问的用户的访问权限。在您的 MySQL 服务器上尝试以下操作:
GRANT ALL PRIVILEGES ON * . * TO 'xxx'@'192.168.1.13';
请注意,上面@
后面的IP地址是指MySQL客户端连接的地址(你的Django容器),而不是MySQL服务器的地址。
【讨论】:
感谢您的回复。但我认为你的建议不会奏效。因为 192.168.1.13 是我的 docker 主机。它确实不是 mysql 服务器。 MySQL 服务器 IP 为 192.168.1.6。我在settings.py中设置了它,但是django实例尝试连接192.168.1.13。那是我的问题。 答案中指定的 IP 地址是指用户连接的主机,而不是它连接的主机。你测试过我的命令吗? 谢谢。我太傻了。我误解了你的建议。你的答案是正确的。我的问题解决了。再次感谢您。 IP 可以使用通配符吗?假设我希望192.168.*.*
上的每个人都能连接。
是的,您使用 % 符号作为通配符。比如:user_name@'192.168.%'以上是关于如何在docker容器中连接外部mysql服务器的主要内容,如果未能解决你的问题,请参考以下文章