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”