我想将Docker Superset容器连接到现有的外部MySQL数据库

时间:2020-07-23 18:37:29

标签: docker apache-superset superset

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

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

我使用了'mysql:// user:password@127.0.0.1:3306 / database_name'和'mysql:// user:password @ localhost:3306 / database_name'

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

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

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

任何帮助将不胜感激!

3 个答案:

答案 0 :(得分:0)

也许this blog的步骤会有所帮助。

如果您的mysql在其他docker中,则它不是127.0.0.1,此外,如果您不希望每次git pull new docker时都更新需求,最好使用本地需求.txt

答案 1 :(得分:0)

所以我知道了。对于Windows,请在终端机/ Powershell中运行ipconfig(也许是ifconfig linux,mac),并检查正在使用的ip地址docker以太网端口(列为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 :(得分:0)

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