如何使用Grafana Docker连接MySQL到lokal MySQL服务器

如何使用Grafana Docker连接MySQL到lokal MySQL服务器,docker,plesk,grafana,Docker,Plesk,Grafana,在我的web服务器上,我安装了一个带有Plesk的Grafana docker容器。 服务器上也安装了一个MySQL数据库 我启动了容器,在Grafana中,我开始设置MySQL数据源 我尝试使用localhost:3306作为主机,并粘贴了凭据。 但在“保存并测试”之后,我收到错误消息: 拨打tcp 127.0.0.1:3306:连接:连接被拒绝 我想我对我的寄宿地址有理解上的问题。 有人能帮我吗 谢谢。您有这个错误,因为当您使用127.0.0.1时,您引用了容器的IP地址 例如: 在Wind

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

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

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

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

我想我对我的寄宿地址有理解上的问题。 有人能帮我吗


谢谢。

您有这个错误,因为当您使用127.0.0.1时,您引用了容器的IP地址

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


因此,如果您在本地计算机上托管MySQL DB,则数据库主机为192.168.99.1,您的连接必须引用我使用
host.docker.internal
通过的mac上的192.168.99.1:3306,因为grafana在docker容器中,MySQL也在docker容器中运行


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

请参阅中的“我想从容器连接到主机上的服务”一节


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

  • 通过互联网。如果您想从grafana访问mysql,可以配置数据源,以访问主机ip地址:默认mysql地址(3306)。因此mysql容器必须在该端口上运行(
    docker run-d-p3306:3306——name-name-mysql-container-mysql-image
    ),grafana可以通过internet访问。这个选项更容易,但不是一个好的做法。将数据库公开到internet的原因是,只有其他应用程序连接到该数据库,否则,数据库必须关闭到internet

  • 通过网络。两个容器必须位于同一网络中。您可以创建一个网络(
    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
    ,验证两个容器是否在同一网络中,并检查容器的名称。这很有帮助


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

    容器内的localhost/127.0.0.1通常指容器内的其他服务。您可能需要查找MySQL侦听的服务器的另一个本地地址