Sequel Pro with Mysql in Docker

后端 未结 5 1044
挽巷
挽巷 2021-02-05 07:02

I build 2 docker container with docker-compose. I use Docker on Mac, no boot2docker.

version: \'2\'
    services:
        drupal-web:
            image: drupal:         


        
相关标签:
5条回答
  • 2021-02-05 07:07

    Map host port 4306 (or any other available port) to docker mysql 3306 like:

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

    You should be able to connect to docker mysql with 127.0.0.1:4306

    mysql -u drupal -h 127.0.0.1 -P 4306 -p
    
    0 讨论(0)
  • 2021-02-05 07:07

    Should look a bit more like this:

    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
    

    (Im not sure if defining the environment variables on a global level work, maybe someone who knows can correct my answer here and simplify it)

    As you can see, you have 2 services, mysql-server and drupal-web. Drupal-web links your database service. Both services have their own environment variables.

    0 讨论(0)
  • 2021-02-05 07:11
    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:
    

    This works just fine today. However it didn't work when I used image: mysql:latest

    0 讨论(0)
  • 2021-02-05 07:13

    You forgot to expose your DB port to the host, so simply add

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

    And then connect to the database in Sequel Pro using:

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

    If you already have a local mysql database running on your host, change the port

    ports: 
      - "4306:3306"
    

    and then connect to port 4306 instead of 3306. Be aware, from the Drupal container, you will still use 3306

    0 讨论(0)
  • 2021-02-05 07:28

    In my case i has problem with mysql:8, change to any 5 and all is ok

    0 讨论(0)
提交回复
热议问题