作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的问题是如何配置与 mysql 容器的连接。
这是我的 docker-compose.yml
version: '3'
services:
php:
build: ./php-fpm
volumes:
- ./iym:/var/www/iym
- ./php-fpm/php.ini:/usr/local/etc/php/php.ini
depends_on:
- mysql
web:
build: ./nginx
ports:
- "8888:80"
volumes:
- ./iym:/var/www/iym
- ./nginx/iym.conf:/etc/nginx/conf.d/default.conf
depends_on:
- php
mysql:
image: mysql:5.6
restart: always
command: --default-authentication-plugin=mysql_native_password
volumes:
- ${DB_PATH_HOST}:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: "symf0ny"
ports:
- "3306:3306"
DATABASE_URL=mysql://root:symf0ny@127.0.0.1:3306/iym
php bin/console doctrine:database:create
时,出现类似“
SQLSTATE[HY000] [2002] Connection refused
”的错误。操作系统 - ubuntu 18.04。我应该怎么做才能连接到数据库?非常感谢!
最佳答案
我假设您正在尝试从 docker-compose 中定义的另一个容器/服务进行连接,并且您正在使用当前版本的 docker-compose(2.4 或 3.7)
你需要改变
DATABASE_URL=mysql://root:symf0ny@127.0.0.1:3306/iym
DATABASE_URL=mysql://root:symf0ny@mysql:3306/iym
127.0.0.1
指的是运行 php 的机器的本地主机。在这种情况下,它是 php 的容器 localhost。但是数据库不在那里运行。它在另一个 docker 容器中运行,可以在服务名称下访问,在本例中为
mysql
。
By default Compose sets up a single network for your app. Each container for a service joins the default network and is both reachable by other containers on that network, and discoverable by them at a hostname identical to the container name.
projectName_serviceName_1
(项目名称以默认文件夹名称开头),但也可在服务名称下发现,
link 和
service alias(如果已定义)。我建议尽可能使用服务名称。
关于php - Symfony 4 "Connection refused"尝试连接到 docker mysql 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54524325/
我正在开发一个 voip 调用应用程序。我需要做的是在接到来电时将 Activity 带到前台。我在应用程序中使用 Twilio,并在收到推送消息时开始调用。 问题是我试图在接到任何电话时显示 Act
我是一名优秀的程序员,十分优秀!