How to connect Sequel Pro (on a Mac) to a MySQL in a Docker

At my new job I was given a Mac (Mac Mini M1 with Big Sur), whereas I’ve used Windows and some Linux my whole life. First week yet.

I have a working Docker container with mysql-server and also PhpMySql.

Nevertheless I wanted to use Sequel Pro locally to connect to Mysql and I’m failing completely.
Screenshot of error: “Connection failed! Unable to connect to host 127.0.0.1, or the request timed out.”

I’ve installed mysql-client with Homebrew and I’m able to connect with docker’s mysql without any problem using:

mysql -h 127.0.0.1 -u sail -p

My .env file is as follows:

DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel8vue
DB_USERNAME=sail
DB_PASSWORD=password

My docker-compose.yml (version 3) related to mysql is as follows:

mysql:
    image: 'mysql/mysql-server:8.0.26'
    ports:
        - '${FORWARD_DB_PORT:-3306}:3306'
    environment:
        MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
        MYSQL_DATABASE: '${DB_DATABASE}'
        MYSQL_USER: '${DB_USERNAME}'
        MYSQL_PASSWORD: '${DB_PASSWORD}'
        MYSQL_ALLOW_EMPTY_PASSWORD: 'yes'
    volumes:
        - 'sailmysql:/var/lib/mysql'
    restart: unless-stopped
    networks:
        - sail
    healthcheck:
        test: ["CMD", "mysqladmin", "ping", "-p${DB_PASSWORD}"]
        retries: 3
        timeout: 5s

My Sequel Pro using the standard tab with the following settings (screenshot):

Host: 127.0.0.1
Username: sail
Password: password
Database: laravel8vue
Port: 3306

How is it possible that I can connect with mysql-client but not with Sequel Pro? What am I missing?

Thank you for your time!

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

You have to expose the db port to the host. If you already running a mysql server in your device and try to running a mysql in docker means you have to changed the port number in docker-compose.

port:
 - 3307:3306

in Sequel Pro, you configuration should be like this.

UserName: user
Host: Your system IP / localhost / 
DBPassword: password
port: 3307

Method 2

Gave up on Sequel Pro.

Tried with Sequel Ace, which graphically is basically the same, and it worked straight away!


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x