Sequel Pro与Docker中的Mysql

时间:2016-08-12 09:34:40

标签: mysql docker sequelpro

我使用docker-compose构建了2个docker容器。我在Mac上使用Docker,没有boot2docker。

version: '2'
    services:
        drupal-web:
            image: drupal:latest
        ports:
            - "8080:80"
    depends_on:
            - mysql-server
    links:
            - mysql-server:mysql
    mysql-server:
        image: mysql
    environment:
        MYSQL_DATABASE: drupal
        MYSQL_ROOT_PASSWORD: root
        MYSQL_USER: drupal
        MYSQL_PASSWORD: drupal

一切正常。我成功安装了Drupal。

问题是:我想将SequelPro连接到我的数据库,但我没有连接到mysql容器。 我是码头初学者。 谢谢你的帮助 米莎

5 个答案:

答案 0 :(得分:25)

您忘记将数据库端口暴露给主机,因此只需添加

即可
mysql-server:
    image: mysql
    ports: 
      - "3306:3306"
    environment:
        MYSQL_ROOT_PASSWORD: root
        MYSQL_DATABASE: drupal
        MYSQL_USER: drupal
        MYSQL_PASSWORD: drupal

然后使用以下方法连接到Sequel中的数据库:

user: root
password: root
host: localhost
port: 3306

如果您已经运行了本地mysql数据库,请更改端口

ports: 
  - "4306:3306"

然后连接到端口4306而不是3306。请注意,从drupal容器中,您仍将使用3306

答案 1 :(得分:6)

将主机端口4306(或任何其他可用端口)映射到docker mysql 3306,如:

mysql-server:
        image: mysql
    environment:
        MYSQL_DATABASE: drupal
        MYSQL_ROOT_PASSWORD: root
        MYSQL_USER: drupal
        MYSQL_PASSWORD: drupal
    ports:
      - "4306:3306"

您应该可以使用127.0.0.1:4306

连接到docker mysql
mysql -u drupal -h 127.0.0.1 -P 4306 -p

答案 2 :(得分:2)

在我的情况下,我有mysql问题:8,更改为任何5,一切正常

答案 3 :(得分:0)

应该看起来更像这样:

version: '2'
services:
    mysql-server:
        image: mysql
        environment:
            MYSQL_ROOT_PASSWORD: root
            MYSQL_DATABASE: drupal
            MYSQL_USER: drupal
            MYSQL_PASSWORD: drupal

    drupal-web:
        image: drupal:latest
        ports:
            - "8080:80"
        depends_on:
            - mysql-server
        links:
            - mysql-server:mysql-server
        environment:
            MYSQL_DATABASE: drupal
            MYSQL_USER: drupal
            MYSQL_PASSWORD: drupal

(我不确定是否在全球范围内定义环境变量的工作,也许有人知道可以在这里纠正我的答案并简化它)

如您所见,您有2个服务,mysql-server和drupal-web。 Drupal-web链接您的数据库服务。两种服务都有自己的环境变量。

答案 4 :(得分:0)

version: "3.8"
services:
          db-1:
            container_name: db-1
            image: mysql:5.7
            restart: always
            environment:
              MYSQL_DATABASE: 'db'
              # So you don't have to use root, but you can if you like
              MYSQL_USER: 'user'
              # You can use whatever password you like
              MYSQL_PASSWORD: 'password'
              # Password for root access
              MYSQL_ROOT_PASSWORD: 'password'
            ports:
              # <Port exposed> : < MySQL Port running inside container>
              - '3306:3306'
            expose:
              # Opens port 3306 on the container
              - '3306'
              # Where our data will be persisted
            volumes:
              - my-db:/var/lib/mysql
volumes:
  my-db:

今天效果很好。但是,当我使用image: mysql:latest

时,它不起作用