在 Docker 中使用 Mysql 的 Sequel Pro
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/38914665/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Sequel Pro with Mysql in Docker
提问by freemindghost
I build 2 docker container with docker-compose. I use Docker on Mac, no boot2docker.
我用 docker-compose 构建了 2 个 docker 容器。我在 Mac 上使用 Docker,没有 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.
一切正常。我成功安装了 Drupal。
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.
问题是:我想将 SequelPro 连接到我的数据库,但我没有连接到 mysql 容器。我是码头初学者。
回答by Eugen Mayer
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:
然后使用以下命令连接到 Sequel Pro 中的数据库:
user: root
password: root
host: localhost
port: 3306
If you already have a local mysql database running on your host, change the port
如果您的主机上已经运行了本地 mysql 数据库,请更改端口
ports:
- "4306:3306"
and then connect to port 4306instead of 3306. Be aware, from the Drupal container, you will still use 3306
然后连接到端口4306而不是3306. 请注意,从 Drupal 容器中,您仍将使用3306
回答by Khaldoon Masud
Map host port 4306 (or any other available port) to docker mysql 3306 like:
将主机端口 4306(或任何其他可用端口)映射到 docker mysql 3306,例如:
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
您应该能够使用 127.0.0.1:4306 连接到 docker mysql
mysql -u drupal -h 127.0.0.1 -P 4306 -p
回答by Дмитрий Миронов
In my case i has problem with mysql:8, change to any 5 and all is ok
就我而言,我的 mysql:8 有问题,更改为任意 5 就可以了
回答by chickahoona
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.
如您所见,您有 2 个服务,mysql-server 和 drupal-web。Drupal-web 链接您的数据库服务。这两个服务都有自己的环境变量。

