问题描述
$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文件,没有密码。但是在这种情况下,laravels env()
函数会返回一个空字符串。
该空字符串用作密码,不是您想要的。您必须获得env('DB_PASSWORD')
才能返回null
进行身份验证,而无需输入密码。
可以通过写入DB_PASSWORD=null
或删除该行来对其进行存档。但是将其写出来可以防止将来您和其他人认为它已被忘记。
您的数据库服务器如何托管?通常,此错误与远程根目录的未授权有关。
例如,此命令:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password';
然后,重新启动Mysql服务
service mysql restart