在Docker中使用Mysql的续集Pro
我使用docker-compose构建了2个docker容器。我在Mac上使用Docker,没有boot2docker。在Docker中使用Mysql的续集Pro
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
一切工作正常。我成功安装了Drupal。
问题是:我想将SequelPro连接到我的数据库,但我没有连接到mysql容器。 我是码头初学者。 感谢您的帮助 米莎
看起来应该多一点这样的:
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
(林不知道,如果定义在全球范围内的工作环境变量,也许有人谁知道可以在这里纠正我的答案并简化它)
正如你所看到的,你有2个服务,mysql-server和drupal-web。 Drupal-web链接您的数据库服务。这两个服务都有自己的环境变量。
你忘了,露出你的数据库端口的主机,所以只需添加
mysql-server:
image: mysql
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: drupal
MYSQL_USER: drupal
MYSQL_PASSWORD: drupal
,然后使用连接到数据库中Sequal:
user: root
password: root
host: localhost
port: 3306
如果你有一个本地的MySQL数据库运行已经,更改端口
ports:
- "4306:3306"
,然后连接到端口4306
代替邻f 3306
。要知道,从Drupal的容器,你仍然会使用3306
明确暴露端口3306允许我从我的mac中使用sequel pro访问它。我有点惊讶,它还没有被默认暴露 – DDS
地图主机端口4306(或其他任何可用的端口),以泊坞窗mysql的3306,如:
mysql-server:
image: mysql
environment:
MYSQL_DATABASE: drupal
MYSQL_ROOT_PASSWORD: root
MYSQL_USER: drupal
MYSQL_PASSWORD: drupal
ports:
- "4306:3306"
你应该能够连接到泊坞窗的MySQL与127.0.0.1:4306
mysql -u drupal -h 127.0.0.1 -P 4306 -p
在我来说,我已经与MySQL的问题:8,换到任何5,一切都OK
我的文件做工精细,唯一的问题是,我无法达到我的来自extern的DB。 – freemindghost
同样的问题在这里,我仍然没有找到这个原因...你有什么消息吗? – Charaf