Symfony 5 + Docker: SQLSTATE[HY000] [2002] 连接被拒绝
Symfony 5 + Docker: SQLSTATE[HY000] [2002] Connection refused
我在尝试使用 Symfony 5 和 Docker 连接到数据库时遇到以下错误。
An exception occurred in driver: SQLSTATE[HY000] [2002] Connection refused
也许你能知道我的配置文件出了什么问题。如果我遗漏了任何可能与此问题相关的配置文件,请告诉我。
docker-compose.yaml:
mysql:
image: mysql:8
ports:
- "3306:3306"
volumes:
- ./docker/database:/docker-entrypoint-initdb.d
environment:
- MYSQL_DATABASE=${DATABASE_NAME}
- MYSQL_ROOT_PASSWORD=${DATABASE_ROOT_PASSWORD}
command: ["--default-authentication-plugin=mysql_native_password"]
doctrine.yaml:
doctrine:
dbal:
url: '%env(resolve:DATABASE_URL)%'
default_table_options:
charset: utf8mb4
collate: utf8mb4_unicode_ci
.env:
DATABASE_URL=mysql://root:root@127.0.0.1:3306/database_name?serverVersion=8.0
DATABASE_ROOT_PASSWORD=root
DATABASE_NAME=database_name
服务定义:
some.repository:
class: Some\Class
arguments:
- '@database_connection'
DATABASE_URL127.0.01中的地址指的是本地docker容器。问题是 MySQL 是另一个容器。
解决问题:
将 127.0.0.1 替换为您案例中的数据库容器“mysql”
我在尝试使用 Symfony 5 和 Docker 连接到数据库时遇到以下错误。
An exception occurred in driver: SQLSTATE[HY000] [2002] Connection refused
也许你能知道我的配置文件出了什么问题。如果我遗漏了任何可能与此问题相关的配置文件,请告诉我。
docker-compose.yaml:
mysql:
image: mysql:8
ports:
- "3306:3306"
volumes:
- ./docker/database:/docker-entrypoint-initdb.d
environment:
- MYSQL_DATABASE=${DATABASE_NAME}
- MYSQL_ROOT_PASSWORD=${DATABASE_ROOT_PASSWORD}
command: ["--default-authentication-plugin=mysql_native_password"]
doctrine.yaml:
doctrine:
dbal:
url: '%env(resolve:DATABASE_URL)%'
default_table_options:
charset: utf8mb4
collate: utf8mb4_unicode_ci
.env:
DATABASE_URL=mysql://root:root@127.0.0.1:3306/database_name?serverVersion=8.0
DATABASE_ROOT_PASSWORD=root
DATABASE_NAME=database_name
服务定义:
some.repository:
class: Some\Class
arguments:
- '@database_connection'
DATABASE_URL127.0.01中的地址指的是本地docker容器。问题是 MySQL 是另一个容器。
解决问题: 将 127.0.0.1 替换为您案例中的数据库容器“mysql”