当前位置: 首页 > 知识库问答 >
问题:

是否从本地主机连接到Docker MySQL容器?

丰誉
2023-03-14
db:
  image: mysql
  environment:
    MYSQL_ROOT_PASSWORD: ""
    MYSQL_ALLOW_EMPTY_PASSWORD: yes
  ports:
    - "3306:3306"

澄清:

  • 我有一台安装了Docker的macbook
  • 我有一个带有MySQL的docker容器
  • 我想从MacBook上的终端连接到在上述容器上运行的mysql实例
  • 我不想使用docker命令来实现此操作。相反,我想直接从终端使用MySQL客户机(而不通过docker容器隧道进入)。

我没有在本地运行MySQL,所以端口3306应该是打开的,可以随时使用。

我用来启动容器的命令是:docker-compose run

共有1个答案

翟志新
2023-03-14

由于您在docker主机上发布了3306端口,因此您将从该主机本身连接到127.0.0.1:3306

在这种情况下,docker-compose.yml文件的端口映射部分将被忽略。要考虑端口映射部分,必须添加--service-ports选项:

docker-compose run --service-ports db

请注意,默认情况下,当您告诉mysql客户端连接到localhost时,mysql客户端会尝试使用unix套接字进行连接。因此,请使用127.0.0.1而不要使用localhost:

 $ mysql -h 127.0.0.1 -P 3306 -u root

欢迎使用MySQL监视器。命令以;或者\g。您的MySQL连接id为1服务器版本:5.6.26 MySQL Community Server(GPL)

版权所有(c)2000、2015,Oracle和/或其附属公司。保留所有权利。

Oracle是Oracle公司和/或其附属公司的注册商标。其他名称可能是其各自所有者的商标。

键入“help;”或者'\h'求助。键入“\C”以清除当前输入语句。

MySQL>

$ mysql -h localhost -P 3306 -u root

错误2002(HY000):无法通过套接字“/var/run/mysqld/mysqld.sock”(2)连接到本地MySQL服务器

 类似资料:
  • 问题内容: 我正在运行一个docker mysql映像,以下是docker-compose.yml文件的外观: 这很好。 我的问题是:如何从主机(我的Macbook)上的命令行mysql客户端连接到在该容器上运行的MySQL实例? 澄清: 我有一台装有Docker的Macbook 我有一个带有mysql的docker容器 我想从Macbook的终端连接到上述容器上运行的mysql实例 我不想使用命

  • 我有一个运行java进程的docker容器,我试图将该进程连接到本地主机上运行的rabbitmq。 以下是我到目前为止所做的步骤: null 能够ping local-ip和curl rabbitmq admin api [{“名称”:“/”,“跟踪”:false}] 当我试图从容器内部telnet时,我得到 由:java.net.ConnectException:在java.net.plains

  • 问题内容: 由于wamp服务器,我试图将我的android应用程序连接到本地主机url,但它不起作用。我的目标是获取json数据并解析这些数据。对于我的测试,我使用的是设备而不是模拟器,并且使用AndroidManifest.xml中的权限: 我的网址看起来像这样: 我试过了 : 但是到目前为止,它从未起作用: 然后我尝试了在互联网上找到的json url测试:http : //headers.j

  • 我在我的Web服务器(Debian/Nginx/Gunicorn)上运行Redis进行会话存储,我有理由相信我的Redis服务器遭到了黑客攻击。这绝对是可能的,因为如果我在另一台机器上针对web服务器运行命令“redis cli-h(HOST IP)”,我就可以进入控制台并运行命令。我有两个问题。首先,如果我在我的iptables文件中添加一个新的部分,如下所示,我会正确地阻止除Web服务器本身之

  • 问题内容: 所以我有一个Nginx在docker容器中运行,我有一个mysql在本地主机上运行,​​我想从我的Nginx内部连接到MySql。MySql在localhost上运行,并且没有将端口暴露给外界,因此它绑定在localhost上,而不绑定在计算机的IP地址上。 有什么方法可以从此Docker容器中连接到此MySql或localhost上的任何其他程序吗? 此问题与“如何从Docker容器

  • 问题内容: 所以我想连接到我在主机上运行的mongodb(DO Drop,Ubuntu 16.04)。它在localhost 的默认端口上运行。 然后,我使用mup将我的Meteor应用程序部署在我的DO Drop上,该DO Drop使用docker在容器内运行Meteor应用程序。到目前为止,一切都很好。使用标准连接URL将应用程序连接到mongodb。现在我有以下问题: 显然不能在docker