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

标签 python mysql docker

我有一个在 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 容器,则

  1. 您需要公开 mysql docker 容器的端口(引用: https://bobcares.com/blog/docker-port-expose/ )

如果您在虚拟机内运行此容器,则

  • 您还需要转发虚拟机端口。 (引用https://www.howtogeek.com/122641/how-to-forward-ports-to-a-virtual-machine-and-use-it-as-a-server/)
  • 关于python - 访问在 ubuntu 服务器上运行的 docker 上运行的 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50878337/

    相关文章:

    python - 枚举非确定性列表的所有可能性

    mysql - Docker Basic Proxysql 与 mysql 记录所有查询

    php - 用于处理 session 的不同数据库...我做的正确吗?

    python - Virtualhost:使用 Docker 将 Flask 网站上线

    python - 使用 python 在文本文件中搜索特定字符的出现

    python - 有没有办法在使用带有配置文件的 CherryPy 3.2 提供静态文件时使用相对路径?

    mysql - 有没有办法将条件添加到 COUNT() 中?

    ruby-on-rails - 如何在单容器 Docker 环境中的 Amazon Elastic Beanstalk 上部署 Rails 应用程序

    django - "docker-compose run"命令后卷更改不持久(Django 的collectstatic)

    python - 预测发生时准确性较差