Sequel Pro with Mysql in Docker

夙愿已清 提交于 2019-12-03 03:05:20

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

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

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

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.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!