驱动程序发生异常:SQLSTATE[HY000] [1045] 用户 'db_user'@'localhost' 的访问被拒绝(使用密码:YES)

An exception occurred in driver: SQLSTATE[HY000] [1045] Access denied for user 'db_user'@'localhost' (using password: YES)

我关注了这个documentation 将教义添加到我的 symfony 项目 (v4.2)。但是当安装了 doctrine 后,它不会将这一行添加到我的项目中(在我的 .env 文件中,就像文档中提到的那样):

DATABASE_URL="mysql://db_user:db_password@127.0.0.1:3306/db_name"

所以我是这样手动添加的:

DATABASE_URL="mysql://root@127.0.0.1:3306/db_school"

并使用此命令创建数据库:

php bin/console doctrine:database:create

它给了我这个错误:

In AbstractMySQLDriver.php line 93: An exception occurred in driver: SQLSTATE[HY000] [1045] Access denied for user 'db_user'@'localhost' (using password: YES)

In PDOConnection.php line 31: SQLSTATE[HY000] [1045] Access denied for user 'db_user'@'localhost' (using password: YES)
In PDOConnection.php line 27: SQLSTATE[HY000] [1045] Access denied for user 'db_user'@'localhost' (using password: YES)

即使我更改了用户名和密码,它仍然无法识别。知道为什么它不起作用吗?我会感激的。

我认为您必须在您的 DBMS 中创建一个带密码的用户 "db_user"。然后授予他"Administration"权限。然后更正 .env 的数据库配置行:

DATABASE_URL="mysql://db_user:db_password@127.0.0.1:3306/db_name"

尝试使用与您拥有密码相同的语法,只需在密码应该是的地方不输入任何内容:

DATABASE_URL="mysql://root:@127.0.0.1:3306/db_school"

如此处所述:https://github.com/doctrine/DoctrineBundle/issues/746#issuecomment-351788298

这个方法似乎对我不起作用我不知道为什么但它是这样工作的:

  • 所以我用Flex来安装学说:

composer require doctrine

然后我运行这个:

composer require orm

  • 然后我转到我的文件 .env,我发现我的数据库语法是自动生成的,一切正常。

  • 我还删除了我计算机上打开的其他 sql 处理器(我也安装了 sql 服务器 + wamp,这解释了我的冲突)然后re-opened 我的 wamp 服务器和一切工作正常。