【问题标题】:MySQL-workbench and Docker Can't connect to MySQL server on '127.0.0.1' (61)MySQL-workbench 和 Docker 无法连接到“127.0.0.1”上的 MySQL 服务器 (61)
【发布时间】:2019-09-03 18:07:49
【问题描述】:

Om Mac 我在本地网络上使用 docker,我想使用 MySQL-workbench 访问 mysql,但是在我安装 MySQL-workbench 并尝试连接到数据库之后,我收到了这个错误消息

Can't connect to MySQL server on '127.0.0.1' (61)

我试图为 docker 寻找解决方案,但没有找到。

docker 检查 pkbook_mysql_1

"NetworkSettings": {
            "Bridge": "",
            "SandboxID": "cb984bedd303958298621c1571482c7c06a2a326df021902c15a7955b8c26b2c",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "3306/tcp": null
            },
            "SandboxKey": "/var/run/docker/netns/cb984bedd303",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "",
            "Gateway": "",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "",
            "IPPrefixLen": 0,
            "IPv6Gateway": "",
            "MacAddress": "",
            "Networks": {
                "publiquip_default": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": [
                        "mysql",
                        "ee6b2dd46fb8"
                    ],
                    "NetworkID": "8809726a588595aea20989df3608ae6646f2e64aa928974469df34b52febe7a4",
                    "EndpointID": "f41cf7f7e42f4921393e13c7db9ce046c784c159ad0ff3c74d45ed788323d4b1",
                    "Gateway": "172.20.0.1",
                    "IPAddress": "172.20.0.4",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:14:00:04",
                    "DriverOpts": null
                }

码头工人ps

CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
e34b4dbad1e3        pkbook_joomla    "/entrypoint.sh apac…"   4 days ago          Up 5 hours          0.0.0.0:80->80/tcp   pkbook_joomla_1
ee6b2dd46fb8        mysql:5.6           "docker-entrypoint.s…"   6 days ago          Up 5 hours          3306/tcp             pkbook_mysql_1
0ccd811b7955        pkbook_gulp      "docker-entrypoint.s…"   6 days ago          Up 5 hours                               pkbook_gulp_1

【问题讨论】:

  • 尝试使用 0.0.0.0 而不是 127.0.0.1
  • 请添加你用来运行mysql的docker命令
  • mysql -u pkbook -ppkbook pkbook
  • @dfundako:同样的问题

标签: docker mysql-workbench


【解决方案1】:

您需要使用 -p opt 选项发布 3306 端口。

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -p 3306:3306 mysql 

【讨论】:

  • 我在 docker 上输入了:docker run -p 3306:3306 mysql 但我在 127.0.0.1:3306 使用用户 pkbook 连接到 MySQL 失败
  • 您从哪里连接失败?您的主机或其他容器?
  • 尝试用root连接。当 mysql 映像像这样运行时,密码由 env 变量设置: docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -p 3306:3306 mysql
  • 我确实尝试使用 root 进行连接,但也无法正常工作
  • 你能运行这个命令吗? sudo lsof -iTCP -sTCP:LISTEN -n -P
【解决方案2】:

尝试键入容器名称和端口,而不是主机 127.0.0.1。 如果它不起作用。

在终端类型docker ps。 (如果您在创建容器时没有提供名称,docker 将使用随机名称命名)。如果容器正在运行,您应该会在列表中看到它。

然后检查IP和PORT:

docker inspect [CONTAINER-NAME]

并在以下位置找到:

“网络设置”:

                "3306/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "33082"
                    }
                ],
                "33060/tcp": null
            },

所以,在这种情况下,它是 0.0.0.0:33082

【讨论】:

  • 我编辑我的问题并从 docker inspect pkbook_mysql_1 发布结果
  • 看起来您缺少发布端口。几乎是托马斯马丁所说的,但他称之为暴露端口。这是不一样的。 stackoverflow.com/questions/22111060/… 如果这没有帮助你请写你如何启动容器?通过 docker 命令或 docker-compose?
猜你喜欢
  • 2014-12-08
  • 1970-01-01
  • 2015-11-24
  • 1970-01-01
  • 2013-06-18
  • 2011-10-25
  • 2011-08-15
  • 2012-02-08
  • 1970-01-01
相关资源
最近更新 更多