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

Php SQL:select*from users:SQLSTATE[HY000][1045]拒绝用户'root'@'localhost'的访问(使用密码:YES),php,laravel,Php,Laravel,在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_

在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=

您能帮我吗?

您的数据库服务器是如何托管的?此错误通常与远程根用户的未授权有关

例如,此命令:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
然后,重新启动Mysql服务

service mysql restart

正如我在评论中提到的:将您的密码放在DB_password=之后,或者将其设置为DB_password=null

说明:

在您发布的错误中,消息包含using password:YES(使用密码):表示使用了密码。根据您的.env,没有密码。但在这种情况下,laravels env函数返回一个空字符串

该空字符串用作密码,而不是您想要的密码。您必须获取env'DB_PASSWORD'才能为auth(无密码)返回null


这可以通过写入DB_PASSWORD=null或删除该行来存档。但是写出来可以防止将来的你和其他人认为它被忘记了。

只需在DB_password=之后键入mysql根密码,或者将其设置为DB_password=null,可能会在没有密码的情况下尝试使用。@PKeidel我将DB password设置为null,效果很好。你有一个大脑袋你能告诉我上面的命令应该放在哪里吗?