在 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 4306
instead 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 链接您的数据库服务。这两个服务都有自己的环境变量。