访问在ubuntu服务器上运行的docker上运行的MySQL

问题描述 投票:0回答:1

我有一个在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行,在文件“C:\ Anaconda \ lib \ site-packages \ MySQLdb__init __。py”,第86行,在Connect return Connection(* args,** kwargs)文件“C:\ Anaconda \ lib \ site-packages \ MySQLdb \ connections.py”,第204行,in it super(Connection,self).init(* args,** kwargs2)_mysql_exceptions.OperationalError:(2013 ,“在读取初始通信数据包时丢失与MySQL服务器的连接”,系统错误:0“)

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

python mysql docker access
1个回答
0
投票

如果你在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/
© www.soinside.com 2019 - 2024. All rights reserved.