繁体   English   中英

SQLSTATE[HY000] [1045] 用户 'symfony'@'localhost' 的访问被拒绝(使用密码:YES)--- docker

[英]SQLSTATE[HY000] [1045] Access denied for user 'symfony'@'localhost' (using password: YES) --— docker

错误

错误:

在 AbstractMySQLDriver.php 第 112 行中:

驱动程序中发生异常:SQLSTATE[HY000] [1045] Access denied for user 'symfony'@'localhost' (usin
g 密码:是)

在 Exception.php 第 18 行:

SQLSTATE[HY000] [1045] 用户 'symfony'@'localhost' 的访问被拒绝(使用密码:YES)

在 PDOConnection.php 第 38 行:

SQLSTATE[HY000] [1045] 用户 'symfony'@'localhost' 的访问被拒绝(使用密码:YES)

.env: DATABASE_URL=mysql://symfony:symfony@127.0.0.1:3306/symfony?serverVersion=5.7

docker 设置:docker-compose.yml

 db:
        container_name: db
        image: 'mysql:8.0'
        command: ["--default-authentication-plugin=mysql_native_password"]
        ports:
            - "3306:3306"
        environment:
            MYSQL_ROOT_PASSWORD: root
            MYSQL_DATABASE: symfony
            MYSQL_USER: symfony
            MYSQL_PASSWORD: symfony
            DATABASE_URL: symfony.localhost
        networks:
            - db

您的连接字符串应该是:

DATABASE_URL=mysql://symfony:symfony@db/symfony?serverVersion=5.7

Tl; dr 使用db而不是localhost / 127.0.0.1作为主机部分。 db是具有 MySQL 的容器的名称。 Docker 容器对自己来说就像主机一样。

如果您不打算从主机连接到 MySQL(例如,使用 MySQL 工作台/Sequel Pro),您可以删除端口: docker-compose文件中的ports: 3306:3306发布部分。 端口不需要工作。 容器可以在其网络中与任何端口自由地对话。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM