连接到Docker Container中运行的MySql服务器

时间:2018-01-11 19:42:07

标签: mysql docker

我有一点问题,我似乎无法连接到在docker容器内运行的mysql服务器社区版。

我可以使用cli轻松连接到mysql服务器:

docker exec -it mysqlserver mysql -uroot -p

但是,如果我尝试连接任何其他数据库连接器,如DataGrip或MySql Workbench,我会拒绝访问。

但我在配置文件中没有改变任何内容。我使用容器公开的默认3306端口将ip设置为localhost。用户名我保留为root,密码完全相同但仍然失败。

我错过了什么,不理解任何事情吗?

非常感谢一些帮助!

额外信息:我正在使用MacOS,使用Docker for Mac运行容器,此时我正在使用最新的MySql数据库版本。

2 个答案:

答案 0 :(得分:1)

您的容器不包含其他连接器,尝试在使用docker run --name mysql -p 127.0.0.1:3306:3306 ....运行容器链接端口时发布端口。您可以使用本地cli将您连接到容器。试试这个doc

答案 1 :(得分:1)

下面是我用来启动MariaDB实例来测试某些查询的docker-compose.yml。 MariaDB与MySQL兼容API,因此没有区别。

version: "2"

services:
  db:
    image: bitnami/mariadb:latest
    volumes:
      - ./mariadb/data:/bitnami
    ports:
      - "9001:3306"
    environment:
      MARIADB_ROOT_PASSWORD: ChangeMeIfYouWant
  phpmyadmin:
    image: phpmyadmin/phpmyadmin:latest
    ports:
      - "9010:80"
    links:
      - db:db

下载图像并通过docker-compose up创建和启动容器。之后,我可以使用JetBrains DataGrip轻松连接到它。

主持人:localhost
港口:9001
用户:root
密码:ChangeMeIfYouWant