【问题标题】:I want to connect a Docker Superset container to an existing external MySQL database我想将 Docker Superset 容器连接到现有的外部 MySQL 数据库
【发布时间】:2020-11-13 13:50:31
【问题描述】:

我正在尝试将现有的 MySQL 数据库作为源数据库添加到运行 Apache Superset 的 docker 容器中。我尝试添加的 MySQL 数据库未在 docker 容器中运行。它是在 Windows 机器上运行的现有 MySQL 数据库。

我已将mysqlclient==1.4.6 添加到requirements.txt。错误消息似乎表明驱动程序已安装。

我用过mysql://user:password@127.0.0.1:3306/database_namemysql://user:password@localhost:3306/database_name

我得到的错误是:

“错误:连接失败,请检查您的连接设置。”

我正在使用图片:apache / 'incubator-superset' v. 0.36.0

是否需要更改任何设置或配置才能从正在运行的 docker 容器中与外部数据库通信?

任何帮助将不胜感激!

【问题讨论】:

标签: docker apache-superset superset


【解决方案1】:

所以我想通了。对于 Windows,在终端/powershell 中运行 ipconfig(可能是 ifconfig linux、mac)并检查 docker 以太网端口使用的 ip 地址(列为 WSL),假设 ip 为:172.x(x).x(x).x (X)。然后在 docker 以太网端口上配置带有 ip 地址的连接字符串,如下所示:'mysql://user:password@172.x(x).x(x).x(x):3306/database_name'。

如果有人知道,请追问:如何将运行 apache/superset 的 docker 容器连接到运行 MySQL 服务器的本地网络上的另一个服务器/IP 地址?换句话说,我想将在我的计算机上运行的 docker 容器中的 apache/superset 应用程序连接到本地网络上运行 MySQL 服务器的另一台计算机。 MySQL 服务器不在 docker 容器中。

【讨论】:

    【解决方案2】:

    也许this blog的步骤可以帮到你。

    如果您的 mysql 在其他 docker 中,它不是 127.0.0.1,此外,如果您不希望每次 git pull 一个新 docker 时都更新要求,最好使用 requirements-local .txt

    【讨论】:

    • 谢谢!我阅读了您链接到的博客文章,但没有成功。我在 Windows 机器上,链接帖子中的说明仅适用于 Linux 和 Mac。澄清一下,只有超集应用程序位于 docker 容器中。我尝试连接的 mysql 数据库位于 localhost 和/或网络上,它不在 docker 容器中。
    【解决方案3】:

    您应该可以这样做,但您的 MySQL 必须具有可以从 Supserset 机器访问的外部 IP。首先做一个 telnet 看看你是否可以从端口 3306 监听到那台机器,如果你可以的话,Supserset 应该使用你拥有的非常相似的 URI。

    【讨论】:

      猜你喜欢
      • 2020-10-18
      • 1970-01-01
      • 2018-06-23
      • 2021-09-03
      • 2020-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-07
      相关资源
      最近更新 更多