【问题标题】:Can't connect to MySQL inside Docker container with SequelPro无法使用 SequelPro 连接到 Docker 容器内的 MySQL
【发布时间】:2018-09-30 17:28:12
【问题描述】:

如何在我的 mac 本地托管的 docker 容器中连接到 MySQL?我正在尝试通过 SequelPro 进行连接,但测试连接无法正常工作。

这是我的 Docker 命令:

docker run -it --name rodneys_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=password -e MYSQL_DATABASE=demo mysql

我可以通过命令行连接:

docker exec -it rodneys_mysql mysql -uroot -p

我知道如何获取docker容器的ip地址:

docker inspect <container id> | grep "IPAddress"

但我无法从我的主机通过 SequelPro 进行连接。

【问题讨论】:

标签: docker sequelpro


【解决方案1】:

通过使用127.0.0.1 而不是localhost 解决了,因为localhost 表示docker 容器本身。另外不要忘记授予用户连接权限:

grant all privileges on *.* to 'root'@'172.17.0.1' identified by 'password';

或者对于所有主机:

grant all privileges on *.* to 'root'@'%' identified by 'password';

【讨论】:

    【解决方案2】:

    您正在将您机器的本地端口 3306 路由到容器的端口 3306。您应该可以在 SequelPro 中使用localhost

    【讨论】:

    • @AlexanderKim 您使用的是哪个操作系统以及如何运行 docker 守护进程?
    【解决方案3】:

    如果你找到了这个页面并且你的 docker-compose.yml 错过了直接指定的端口,尝试像这样添加带有端口的行:

    mysql:
    image: bitnami/mariadb:latest
    ports:
      - "3306:3306"
    

    这对我有用。

    【讨论】:

      猜你喜欢
      • 2016-04-26
      • 2016-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-30
      • 2020-07-29
      • 2022-11-18
      • 1970-01-01
      相关资源
      最近更新 更多