
[英]SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES) symfony2
[英]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.