访问在ubuntu服务器

时间:2018-06-15 15:11:01

标签: python mysql docker access

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

据我所知,docker在ubuntu服务器中运行自己的环境。在此docker环境中,MySQL数据库正在运行。因此,使用mysql从localhost(服务器)访问MySQL数据库就可以了。

我现在正试图通过MySQL,Toad(https://www.quest.com/toad/)和python从外部计算机访问MySQL。

我收到以下错误。

来自MySQL:ERROR 2005(HY000):未知的MySQL服务器主机'130.235.168.214;' (0)

来自Toad:尝试阅读流的结尾。

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

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

1 个答案:

答案 0 :(得分:0)

如果你在Linux机器上运行这个mysql docker容器,那么<​​/ p>

  1. 您需要公开mysql docker容器的端口(参见:https://bobcares.com/blog/docker-port-expose/
  2. 如果您在虚拟机内运行此容器,则

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