在 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_PORTDB_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' 的访问被拒绝的主要内容,如果未能解决你的问题,请参考以下文章