在 laravel 5 中,用户 'homestead@localhost' 的访问被拒绝

Posted

技术标签:

【中文标题】在 laravel 5 中,用户 \'homestead@localhost\' 的访问被拒绝【英文标题】:Access denied for user 'homestead@localhost' .. in laravel 5在 laravel 5 中,用户 'homestead@localhost' 的访问被拒绝 【发布时间】:2015-04-23 00:56:02 【问题描述】:

我使用命令 php artisan migrate 在 laravel 5 中迁移我的数据库 .. 它给了我一个错误:

带有消息“SQLSTATE[HY000] [1045] 访问的异常“PDOException” 拒绝用户'homestead'@'localhost'(使用密码:YES)'

【问题讨论】:

您检查过使用的密码正确吗? problems with database connection in laravel 5的可能重复 请查看我在上面发布的问题中的回答,您需要更改 .env 文件中的连接值 您可以点击以下链接:http://***.com/questions/29756194/access-denied-for-user-homesteadlocalhost-using-password-yes 【参考方案1】:

更改 .env 文件后,您必须重新启动服务器。

在命令提示符下的 laravel 中,输入:

php artisan serve

【讨论】:

【参考方案2】:

运行以下命令:

php artisan cache:clear
php artisan config:cache

【讨论】:

【参考方案3】:

两种方法解决

打开您的数据库配置文件 (laravel_root/config/database.php) 并搜索以下代码块。

'host' => env('DB_HOST', 'localhost'),
'database'  => env('DB_DATABASE', 'blog'),
'username'  => env('DB_USERNAME', 'root'),
'password'  => env('DB_PASSWORD', ''),

如下修改代码块

'host'      => 'enteryourHostName',
'database'  => 'ebterYourDatabastName',
'username'  => 'enterYoutDatabaseUsername',
'password'  => 'enterYourDatabasePassword',

第二种方式(Laravel 推荐)

检查你的 Laravel 根目录有一个文件调用 .env 如果不存在,查找 .env.example,复制/重命名为 .env 之后文件看起来很糟糕!

APP_ENV=local
APP_DEBUG=true
APP_KEY=someRandomNumber

DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

MAIL_DRIVER=smtp
MAIL_HOST=mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null

将下面的块修改如下

DB_HOST=yourHostName
DB_DATABASE=yourDatabaseName
DB_USERNAME=yourDatabaseUsername
DB_PASSWORD=youPassword

这对我有用。

【讨论】:

【参考方案4】:

如果您在 .env 文件中的所有配置都正常,那么您应该:

Terminal 中运行此命令,列出其中包含 php 的进程:

ps -ef | grep php

然后:

501 4529 599 0 Sat03PM ttys000 0:00.15 php artisan serve

501 4533 4529 0 Sat03PM ttys000 0:25.11 /usr/bin/php -S 127.0.0.1:8000 /Applications/XAMPP/xamppfiles/htdocs/ds7/laravel/coffeeshop/server.php

使用kill命令终止进程(注意:进程id是第二列数字组。)

kill 4529
kill 4533

然后运行php artisan config:clear

最后,重启服务器:

php artisan serve

【讨论】:

【参考方案5】:
  'mysql' => [
                'driver' => 'mysql',
                'host' => env('DB_HOST', '127.0.0.1'),
                'port' => env('DB_PORT', '3306'),
                'database' => 'laravel',
                'username' => 'root',
                'password' => 'PASSWORD IF HAVE OTHERWISE LEAVE IT BLANK ',
                'unix_socket' => env('DB_SOCKET', ''),
                'charset' => 'utf8mb4',
                'collation' => 'utf8mb4_unicode_ci',
                'prefix' => '',
                'strict' => true,
                'engine' => null,
            ],

从数据库、主机和密码中删除 ENV 值并将它们直接放入

【讨论】:

【参考方案6】:

在您的 .env 文件中 从

更改 DB_PORT
DB_PORT=3306

DB_PORT=33060

参考https://laravel.com/docs/5.4/homestead#connecting-to-databases

小心最后的零

【讨论】:

【参考方案7】:

编辑 .env 文件

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=yourdbname
DB_USERNAME=yourusername
DB_PASSWORD=yourpassword

然后输入你的 cmd

php artisan migrate

它肯定会起作用

【讨论】:

【参考方案8】:

未来的某个时候。尝试先清除您的配置

php artisan config:clear. 

关闭所有终端/cmd 窗口,然后重新启动终端/CMD,这应该可以消除错误消息。看看它是否有效。

【讨论】:

【参考方案9】:

在你的database.php文件中,去掉'DB_DATABASE' 'DB_USERNAME' 'DB_PASSWORD'

并替换为您的数据库名称、用户名和密码

这对你来说很好。

【讨论】:

【参考方案10】:

在您的 Laravel .env 文件中,相应地更改变量以匹配您所需的设置。

如果您在 mysql 数据库中使用 XAMMP 或 EasyPHP 之类的东西,也许使用以下设置

 DB_HOST=localhost
 DB_DATABASE=mysql
 DB_USERNAME=root
 DB_PASSWORD=''

【讨论】:

【参考方案11】:

这个问题之前被问过好几次......查看我找到的最佳答案:

Question 1 Question 2

这个错误背后的问题可能是:

您的 .env 文件和 config/database.php 不正确。 您没有在配置文件中设置正确的unix_socket 值,请检查Question 2。 您正在尝试从本地计算机运行php artisan migrate:install。您应该通过 SSH 连接到 VM homestead ssh 并从那里运行您的迁移,查看 Question 1。

【讨论】:

以上是关于在 laravel 5 中,用户 'homestead@localhost' 的访问被拒绝的主要内容,如果未能解决你的问题,请参考以下文章

基于 Laravel 开发博客应用系列 —— Homestead 和 Laravel 安装器

在 Laravel 5.5 中根据用户角色应用全局范围

允许用户在 laravel 5.2 中进行登录后调用

如何在 laravel 5.7 中删除用户? [复制]

如何在 Laravel 5 中登录时检查用户状态?

仅当用户在 Laravel 5.7 中处于活动状态时才登录用户