Sequel Pro with Mysql in Docker

freemindghost picture freemindghost · Aug 12, 2016 · Viewed 31.3k times · Source

I build 2 docker container with docker-compose. I use Docker on Mac, no 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

Everything works fine. I install Drupal successfully.

The problem is: I would like to connect SequelPro to my DB, but i dont get a connection to the mysql container. I'm a docker beginner.

Answer

Eugen Mayer picture Eugen Mayer · Aug 12, 2016

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