【问题标题】:Symfony 5: Why am I getting this error? SQLSTATE[HY000] [2002] Connection refusedSymfony 5:为什么我会收到这个错误? SQLSTATE[HY000] [2002] 连接被拒绝
【发布时间】:2021-10-04 23:45:40
【问题描述】:

我收到此错误:

An exception occurred in driver: SQLSTATE[HY000] [2002] Connection refused

我尝试将我的.env 中的IP 地址更改为localhost,但随后出现not found 错误。

我还尝试更改我的 .env db 主机以匹配我的 docker compose 文件:

DB_HOST=mysql

docker 作曲家文件:

version: "3.7"
  services:
    app:
    image: kooldev/php:7.4-nginx
    ports:
      - ${KOOL_APP_PORT:-80}:80
  environment:
    ASUSER: ${KOOL_ASUSER:-0}
    UID: ${UID:-0}
  volumes:
    - .:/app:delegated
  networks:
    - kool_local
    - kool_global
  database:
    image: mysql:8.0
    command: --default-authentication-plugin=mysql_native_password
  ports:
    - ${KOOL_DATABASE_PORT:-3306}:3306

我使用kool.dev 进行Symfony 安装,看起来没问题,数据库似乎按预期工作:

user@DESKTOP-QSCSABV:/mnt/c/dev/symfony-project$ kool status
+----------+---------+------------------------------------------------------+-------------------------+
| SERVICE  | RUNNING | PORTS                                                
| STATE                   |
+----------+---------+------------------------------------------------------+-------------------------+
| app      | Running | 0.0.0.0:80->80/tcp, :::80->80/tcp, 9000/tcp          
| Up 15 minutes           |
| database | Running | 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 
33060/tcp | Up 15 minutes (healthy) |
+----------+---------+------------------------------------------------------+-------------------------+

[完成] 获取服务状态 g

在我的.env 文件中:

DB_USERNAME=myusername
DB_PASSWORD=mypassword
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=mydatabase
DB_VERSION=8.0
DATABASE_URL="mysql://${DB_USERNAME}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_DATABASE}?serverVersion=${DB_VERSION}"

关于如何解决此问题的任何建议?

【问题讨论】:

  • 请编辑您的问题并在问题正文中添加代码、日志、输出、错误消息...作为代码或引用块。使用图像通常难以阅读,它会削弱搜索引擎索引内容的能力,视障人士无法使用他们的语音合成器,试图帮助您的人无法在需要时复制/粘贴内容,它使用(在最好的情况下......)比同等文本多 1000 倍的数据量(例如要存储的磁盘空间、数据传输......)。最重要的是,它在How to ask 中被明确列为不良做法。谢谢

标签: docker symfony


【解决方案1】:
DB_HOST=127.0.0.1

在你的环境文件中应该是

DB_HOST=database

127.0.0.1 是容器本身的地址,因此在您的情况下,应用程序容器会尝试与自身建立连接。 Docker compose 创建了一个虚拟网络,每个容器都可以通过其服务名称来寻址。所以在你的情况下,你想连接到database 服务。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-06
    • 2021-07-10
    • 2020-08-29
    • 1970-01-01
    • 2017-05-04
    • 2020-01-22
    • 2020-09-26
    • 2017-09-20
    相关资源
    最近更新 更多