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)