繁体   English   中英

SQL: select * from users: SQLSTATE[HY000] [1045] 用户 'root'@'localhost' 访问被拒绝(使用密码:YES)

[英]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.

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