Symfony 5:为什么会出现此错误? SQLSTATE[HY000] [2002] 连接被拒绝
Symfony 5: Why am I getting this error? SQLSTATE[HY000] [2002] Connection refused
我收到这个错误:
An exception occurred in driver: SQLSTATE[HY000] [2002] Connection refused
我曾尝试将 .env
中的 IP 地址更改为 localhost
,但随后出现 not found
错误。
我还尝试更改我的 .env
数据库主机以匹配我的 docker 撰写文件:
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}"
关于如何解决这个问题有什么建议吗?
DB_HOST=127.0.0.1
在你的环境文件中应该是
DB_HOST=database
127.0.0.1 是容器本身的地址,因此在您的情况下,应用程序容器会尝试与自身建立连接。 Docker compose 创建一个虚拟网络,其中每个容器都可以通过其服务名称寻址。因此,在您的情况下,您想连接到 database
服务。
我收到这个错误:
An exception occurred in driver: SQLSTATE[HY000] [2002] Connection refused
我曾尝试将 .env
中的 IP 地址更改为 localhost
,但随后出现 not found
错误。
我还尝试更改我的 .env
数据库主机以匹配我的 docker 撰写文件:
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}"
关于如何解决这个问题有什么建议吗?
DB_HOST=127.0.0.1
在你的环境文件中应该是
DB_HOST=database
127.0.0.1 是容器本身的地址,因此在您的情况下,应用程序容器会尝试与自身建立连接。 Docker compose 创建一个虚拟网络,其中每个容器都可以通过其服务名称寻址。因此,在您的情况下,您想连接到 database
服务。