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

如何通过网络桥连接到mysql docker实例?

范翰飞
2023-03-14

我正在通过docker-compose运行MySQL,并试图从主机而不是其他容器连接到它。环境被锁定,我不能创建新的docker网络或绑定一个容器到‘主机’网络,桥是唯一的选择。我可以使用容器的IP地址连接到MySQL实例,但这没有多大用处--我需要使用localhost127.0.0.1。这可能吗?如果是,怎么做?

Docker-compose.yml

version: '2.2'
services:
  db:
    container_name: mysql_db
    image: mysql:5.7
    restart: always
    environment:
      MYSQL_DATABASE: 'test-db'
      MYSQL_USER: 'test-user'
      MYSQL_PASSWORD: 'password'
      MYSQL_ROOT_PASSWORD: 'password'
    network_mode: bridge
    ports:
      - '3306:3306'
    expose:
      - '3306'
volumes:
  my-db:

我可以使用容器的IP进行连接,如下所示:

docker run -it --network bridge --rm mysql mysql -h172.17.0.3 -utest-user –ppassword

但无法使用localhost进行连接,如下所示:

docker run -it --network bridge --rm mysql mysql -hlocalhost -utest-user -ppassword

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

其他选项(如127.0.0.1)也不起作用:

ERROR 2003 (HY000): Can't connect to MySQL server on '127.0.0.1' (111)

有什么想法吗?

共有1个答案

吴城
2023-03-14

由于127.0.0.1localhost表示主机您的Docker当前正在运行,因此您无法连接到主机的MySQL

我还建议使用hostname连接容器:

docker run -it --network bridge --rm mysql mysql -hmysql_db -utest-user –ppassword
 类似资料:
  • 问题内容: 我正在尝试通过网络连接到MySQL数据库。我已经安装了MySQL,并且该服务在默认端口上运行。我还将SQL连接器安装到jar文件中,并将Java JDK添加到服务器计算机中。我可以使用以下代码连接到本地数据库: 但是,当我尝试通过IP地址(例如:192.168.1.45)通过网络连接到它时: 我收到连接错误: 有人知道这个问题是什么吗?我需要添加其他地址吗?我已经使用地址添加了默认端口

  • 安装程序:运行Oracle Linux guest的Windows 7主机Vmware工作站 我有一个静态IP分配给我的客户操作系统(只能从办公室局域网或VPN访问)。使用桥接网络,一切正常。当我必须通过无线网络访问此虚拟机时(当我的主机在家中连接到无线互联网连接时),需要进行什么设置? 只有连接到VPN后,才能通过无线方式访问静态IP。

  • 我知道我们可以通过“adb shell svc wifi disable”命令关闭Wifi,但我不想完全关闭Wifi。我想通过adb与特定的ssid断开连接。可能吗? 编辑:我收到一个通知,说这个问题被认为是这个问题的重复:如何通过ADB关闭Wifi?。事实并非如此。正如第一段中明确提到的,我不想关闭wifi,只想简单地断开与特定网络的连接。这就像长按网络并点击“忘记网络”。本质上,我想模拟用户离

  • 我想知道是否有人能帮助我建立MySQL到Oracle 11g数据库连接之间的桥梁连接。例如,我的电脑中安装了MySQL和Oracle数据库。是否可以在MySQL中从Oracle数据库检索数据?如有任何建议/反馈,将不胜感激。:)

  • 问题内容: 我想创建以下基础结构流: 使用Docker如何实现? 问题答案: 首先,您需要在要ssh- in的映像中安装SSH服务器。您可以对安装了ssh服务器的所有容器使用基础映像。然后,您只需要运行每个容器,即可将ssh端口(默认为22)映射到主机端口(镜像中的远程服务器)到一个端口。即: 然后,如果可以从外部访问主机的端口52022和53022,则可以使用主机的ip(远程服务器)通过ssh在

  • 我正在使用PhpStorm 2018.3.4,Docker,MySQL和Ubuntu。我试图配置MySQL与Docker容器不成功。 首先,我尝试了以下配置: 它给了我这个错误: 然后,我试了一下: 这个给了我另一个错误。 我错过什么了吗?有没有其他地方我必须配置一些东西? 输出: 这里: 对于命令,这里是描述的链接:https://pastebin.com/9LmeAkc8 下面是docker-