我有一个在 docker 容器中运行的 mysql 数据库,该容器本身在 ubuntu 服务器上运行。我现在的愿望是能够从同一网络上的外部计算机访问 mysql 数据库。
据我所知,docker 在 ubuntu 服务器中运行自己的环境。在此 docker 环境中,MySQL 数据库正在运行。因此,使用 mysql 从本地主机(服务器)访问 MySQL 数据库就可以了。
我现在尝试使用 MySQL、Toad( https://www.quest.com/toad/ ) 和 python 从外部计算机访问 MySQL。
我收到以下错误。
来自 MySQL:错误 2005 (HY000):未知的 MySQL 服务器主机“130.235.168.214;” (0)
来自 Toad:尝试读取超过流末尾的内容。
来自 Python:回溯(最近一次调用最后一次): 文件“”,第 1 行,位于 文件“C:\Anaconda\lib\site-packages\MySQLdb__init__.py”,第 86 行,在 Connect 中 返回连接(*args,**kwargs) 文件“C:\Anaconda\lib\site-packages\MySQLdb\connections.py”,第 204 行,位于 中 它 super(连接, self).init(*args, **kwargs2) _mysql_exceptions.OperationalError:(2013 年,“在 ' 失去与 MySQL 服务器的连接 读取初始通信数据包',系统错误:0")
所以我现在想知道是否需要将 MySQL 的“标准端口”3306 转发到一个端口,然后我可以使用该端口访问服务器内 docker 内的 MySQL? 我该如何离开这里?非常感谢!
最佳答案
如果您在 Linux 计算机上运行此 mysql docker 容器,则
- 您需要公开 mysql docker 容器的端口(引用: https://bobcares.com/blog/docker-port-expose/ )
如果您在虚拟机内运行此容器,则
关于python - 访问在 ubuntu 服务器上运行的 docker 上运行的 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50878337/