【问题标题】:Accessing a MySQL running on docker running on ubuntu server访问在 ubuntu 服务器上运行的 docker 上运行的 MySQL
【发布时间】:2018-06-15 15:11:01
【问题描述】:

我有一个在 docker 容器中运行的 mysql 数据库,该容器本身在 ubuntu 服务器上运行。我现在的愿望是能够从同一网络上的外部计算机访问 mysql 数据库。

据我了解,docker 在 ubuntu 服务器中运行自己的环境。在这个 docker 环境中,MySQL 数据库正在运行。因此,使用 mysql 从本地主机(服务器)访问 MySQL 数据库就可以了。

我现在正尝试使用 MySQL、Toad(https://www.quest.com/toad/) 和 python 从外部计算机访问 MySQL。

我收到以下错误。

来自 MySQL: ERROR 2005 (HY000): Unknown MySQL server host '130.235.168.214;' (0)

来自 Toad:尝试读取流的末尾。

来自 Python:Traceback(最后一次调用): 文件“”,第 1 行,在 文件“C:\Anaconda\lib\site-packages\MySQLdb__init__.py”,第 86 行,在 Connect 返回连接(*args,**kwargs) 文件“C:\Anaconda\lib\site-packages\MySQLdb\connections.py”,第 204 行,在 in 它 super(Connection, self).init(*args, **kwargs2) _mysql_exceptions.OperationalError:(2013,“失去与 MySQL 服务器的连接” 读取初始通信包',系统错误:0")

所以我现在想知道是否需要将 MySQL 的“标准端口”3306 转发到一个端口,然后我可以使用该端口访问服务器内部 docker 内的 MySQL? 我怎么从这里走?非常感谢!

【问题讨论】:

    标签: python mysql docker


    【解决方案1】:

    如果你在 Linux 机器上运行这个 mysql docker 容器,那么

    1. 你需要暴露mysql docker容器的端口(参考:https://bobcares.com/blog/docker-port-expose/

    如果你在虚拟机中运行这个容器,那么

    1. 您还需要转发虚拟机端口。 (参考https://www.howtogeek.com/122641/how-to-forward-ports-to-a-virtual-machine-and-use-it-as-a-server/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-23
      • 2018-09-27
      • 2019-02-02
      • 1970-01-01
      相关资源
      最近更新 更多