Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Sequel Pro with Mysql in Docker

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.

like image 336
freemindghost Avatar asked Aug 12 '16 09:08

freemindghost


People also ask

Can I use MySQL with Docker?

MySQL is one of the most popular SQL-compatible relational databases. Running MySQL inside a Docker container lets you separate your database from your code. You can also use a container orchestrator like Kubernetes to scale MySQL independently of your API server instance.

Is Sequel Pro only for MySQL?

Supported Platforms: Sequel Pro is available on macOS only. Supported Drivers: Sequel Pro only supports MySQL. It works well with MySQL up to 5.7. Since the recent MySQL 8.0 came out, it's reported that Sequel Pro can't connect to MySQL 8.0, it's not working properly or just crashing.


2 Answers

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

like image 142
Eugen Mayer Avatar answered Sep 20 '22 16:09

Eugen Mayer


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 
like image 20
Khaldoon Masud Avatar answered Sep 19 '22 16:09

Khaldoon Masud