【问题标题】:How to connect to MySQL with Grafana Docker to lokal MySQL Server如何使用 Grafana Docker 连接 MySQL 到本地 MySQL 服务器
【发布时间】:2019-01-25 03:05:03
【问题描述】:

在我安装了一个 Grafana docker 容器的 Plesk 的 Web 服务器上。 服务器上也安装了一个 MySQL 数据库。

我启动了容器,然后在 Grafana 中开始设置 MySQL 数据源。

我尝试将 localhost:3306 作为主机,并粘贴了凭据。 但是在“保存并测试”之后,我收到了错误消息:

拨号 tcp 127.0.0.1:3306:连接:连接被拒绝

我想我的主机地址有问题。 有人可以帮助我吗?

谢谢。

【问题讨论】:

标签: docker plesk grafana


【解决方案1】:

您可以使用两个选项连接两个容器:

  1. 通过互联网。如果要从grafana访问mysql,可以配置数据源,访问host-ip-adress:default-mysql-address(3306)。因此 mysql 容器必须在该端口 (docker run -d -p 3306:3306 --name name-mysql-container mysql-image) 中运行,并且 grafana 可以通过 Internet 访问。这个选项更容易,但这是一个不好的做法。将数据库公开到互联网的原因只是有其他应用程序连接到该数据库,如果没有,数据库必须对互联网关闭。

  2. 通过网络。两个容器必须在同一个网络中。您可以创建一个网络 (docker network create --driver bridge my_grafana_mysql_network),然后在运行两个容器时设置网络 (docker run -d -p 3306:3306 --name name-mysql-container --network my_grafana_mysql_network mysql-image) 标志,两个容器可以互相看到。然后在来自 grafana 的数据源中调用容器的名称。

提示:您可以使用docker inspect docker-container-name 来验证两个容器是否在同一个网络中并检查容器的名称。很有帮助

提示:您可以使用此命令docker network ls 列出网络,以检查网络。

【讨论】:

    【解决方案2】:

    仅出于开发目的,我们可以使用“host.docker.internal”

    请参阅official website 中的“我想从容器连接到主机上的服务”部分

    【讨论】:

      【解决方案3】:

      在我通过使用host.docker.internal 的mac 上,因为grafana 在docker 容器中,mysql 也在docker 容器中运行。

      https://docs.docker.com/docker-for-mac/networking/

      【讨论】:

        【解决方案4】:

        您遇到错误是因为当您使用 127.0.0.1 时,您引用了容器的 IP 地址。

        例如: 在 Windows 上,您的 Docker(如果您使用 Docker Toolbox)的 IP 地址为 192.168.99.100,而您的 PC 的 IP 地址为 192.168.99.1

        因此,如果您在本地计算机上托管 MySQL 数据库,则数据库主机为 192.168.99.1,您的连接必须引用 192.168.99.1:3306

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-04-20
          • 2019-07-03
          • 1970-01-01
          • 2019-10-08
          • 2018-08-07
          相关资源
          最近更新 更多