Laravel 显示错误拒绝用户访问

Posted

技术标签:

【中文标题】Laravel 显示错误拒绝用户访问【英文标题】:Laravel shows error access denied for user 【发布时间】:2019-07-16 09:07:53 【问题描述】:

我是 laravel 新手并尝试运行迁移,但它显示以下错误:

在 Connection.php 第 664 行:

SQLSTATE[HY000] [1045] 用户 'root'@'localhost' 的访问被拒绝 (使用密码: NO) (SQL: select * from information_schema.tables 其中 table_schema = test1 和 table_name = 迁移)

在 Connector.php 第 67 行:

SQLSTATE[HY000] [1045] 用户 'root'@'localhost' 的访问被拒绝 (使用密码:否)

【问题讨论】:

检查 .env 文件 该错误意味着您没有与数据库的有效连接。您是否为您的项目创建了数据库?在您的.env 文件中,您是否使用正确的凭据来建立连接? 将 .env 文件更新为有效的数据库名称和用户名和密码 在 .env 文件中正确检查您的数据库凭据。 mysql Error: : 'Access denied for user 'root'@'localhost'的可能重复 【参考方案1】:

检查您的 .env 环境文件。将 DB_Username 设置为 root 并在 DB_Password 中留空

DB_USERNAME=root
DB_PASSWORD=

如果,你和上面一样。 请用命令清除缓存:

php artisan cache:clear
php artisan route:clear

或者,简单地,转到应用程序项目名称>引导程序>缓存并删除其中的所有文件。

有时,这是因为缓存文件。或不正确的数据库用户名和密码。

【讨论】:

我们可以使用“php artisan config:cache”来实现相同的结果,而不是使用两个命令。发送【参考方案2】:

.env 文件中只需设置正确的数据库凭据:

DB_CONNECTION=mysql 
DB_HOST=127.0.0.1 
DB_PORT=3306 
DB_DATABASE= // Your Database Name
DB_USERNAME= // Your Database Username
DB_PASSWORD= // Your Database Password
如果在 XAMPP 中安装 MySQL 期间没有默认用户名,

DB_USERNAME 应设置为 root。如果数据库没有设置密码,则清空DB_PASSWORD

如果您使用的是 PHP 的默认 Web 服务器(例如 php artisan serve),您需要在更改 .env 文件值后重新启动服务器。

另外,.env 编辑完成后,在终端输入此命令清除缓存:php artisan config:cache

在您可以使用运行所有未完成的迁移后,执行 migrate Artisan 命令:php artisan migrate

【讨论】:

【参考方案3】:

这是一个数据库连接错误。

解决方案:

如果你使用的是windows机器,XAMPP默认可以使用

 DB_CONNECTION=mysql 
 DB_HOST=localhost 
 DB_PORT=3306 
 DB_DATABASE=db_name
 DB_USERNAME=root 
 DB_PASSWORD=

如果您使用的是 Linux 机器并且默认情况下可以使用 XAMPP,还请确保 DB 用户没有密码。否则,您必须在.env中提供数据库密码

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=db_name
DB_USERNAME=root
DB_PASSWORD=password

不要忘记使用php artisan config:cache artisan 命令清除缓存。(如果您在 env 中进行了任何更改,您将清除配置缓存)

【讨论】:

以上是关于Laravel 显示错误拒绝用户访问的主要内容,如果未能解决你的问题,请参考以下文章

PHP SQLSTATE[HY000] [1045] 用户 Laravel 访问被拒绝

Laravel:SQLSTATE [28000] [1045] 用户 'homestead'@'localhost' 的访问被拒绝

用户 'user'@'localhost' Laravel 5.8 的访问被拒绝

在 laravel 4.2 中,用户 'root'@'localhost' 的 Laravel 访问被拒绝(使用密码:YES)

Laravel 拒绝访问 /public 目录

Laravel 数据库连接:用户访问被拒绝