![](/img/trans.png)
[英]SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES) (SQL: select * from `cats`)
[英]SQL: select * from users: SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES)
在 Laravel 中,在使用本机查询时,我使用了以下代码:
$users = DB::select('select * from users');
return $users;
但是,我收到如下错误:
SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES) (SQL: select * from users)
我的 .env 文件是这样的:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=db_seven
DB_USERNAME=root
DB_PASSWORD=
你能帮我吗?
正如我在评论中提到的:将您的密码放在DB_PASSWORD=
或将其设置为DB_PASSWORD=null
解释:
在您发布的错误中,消息包含“使用密码:是”,这意味着使用了密码。 根据您的 .env 没有密码。 但是在这种情况下,laravel env()
函数返回一个空字符串。
该空字符串用作密码,这不是您想要的。 您必须让env('DB_PASSWORD')
为没有密码的身份验证返回null
。
这可以通过写入DB_PASSWORD=null
或删除该行来存档。 但是把它写出来可以防止未来的你和其他人认为它被遗忘了。
您的数据库服务器是如何托管的? 通常此错误与远程根的非授权有关。
例如,这个命令:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
之后,重新启动你的 Mysql 服务
service mysql restart
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.