Mysql 用户的SQLSTATE[HY000][1045]访问被拒绝';symfony'@';本地主机';(使用密码:是)--docker
错误: 在AbstractMySQLDriver.php第112行中: 驱动程序中发生异常:用户'symfony'@'localhost'(usinMysql 用户的SQLSTATE[HY000][1045]访问被拒绝';symfony'@';本地主机';(使用密码:是)--docker,mysql,docker,symfony,connect,Mysql,Docker,Symfony,Connect,错误: 在AbstractMySQLDriver.php第112行中: 驱动程序中发生异常:用户'symfony'@'localhost'(usin的SQLSTATE[HY000][1045]访问被拒绝 g密码:是) 在Exception.php第18行中: 用户'symfony'@'localhost'的SQLSTATE[HY000][1045]访问被拒绝(使用密码:是) 在PDOConnection.php第38行中: 用户'symfony'@'localhost'的SQLSTATE[HY0
的SQLSTATE[HY000][1045]访问被拒绝 g密码:是) 在Exception.php第18行中: 用户'symfony'@'localhost'的SQLSTATE[HY000][1045]访问被拒绝(使用密码:是) 在PDOConnection.php第38行中: 用户'symfony'@'localhost'的SQLSTATE[HY000][1045]访问被拒绝(使用密码:是) .env:数据库URL=mysql://symfony:symfony@127.0.0.1:3306/symfony?服务器版本=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 workbench/Sequel Pro),您可以在
docker compose
文件中删除端口:3306:3306
发布部分。端口不需要它来工作。允许容器在其网络中自由地与自己交谈,并与任何端口进行通信。您好,这可能是您感兴趣的地方