Laravel 5错误SQLSTATE [HY000] [1045]拒绝访问用户'homestead'@'localhost'(使用密码:YES)

use*_*035 24 php database xampp localhost laravel-5

我已成功安装Laravel 5并将config目录中的database.php文件中的MySQL凭据更改为'

mysql' => [
            'driver'    => 'mysql',
            'host'      => env('DB_HOST', 'localhost'),
            'database'  => env('DB_DATABASE', 'wdcollect'),
            'username'  => env('DB_USERNAME', 'root'),
            'password'  => env('DB_PASSWORD', ''),
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,
        ],
Run Code Online (Sandbox Code Playgroud)

我不想使用宅基地,我已将.env文件更改为

APP_ENV=local
APP_DEBUG=true
APP_KEY=apLIzEMOgtc5BUxdT9WRLSvAoIIWO87N

DB_HOST=localhost
DB_DATABASE=wdcollect
DB_USERNAME=root
DB_PASSWORD=

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
Run Code Online (Sandbox Code Playgroud)

我不明白为什么它说"宅基地"@"localhost"被拒绝访问

use*_*035 32

它现在正在运作.我不得不重启服务器.谢谢

  • 刚刚重启!它恢复正常.我的天啊! (2认同)

zar*_*pio 20

我花了几个小时做这个 :-( 最后,它真的很容易被破解

DB_PASSWORD=#Root2020$
Run Code Online (Sandbox Code Playgroud)

更新

DB_PASSWORD="#Root2020$"
Run Code Online (Sandbox Code Playgroud)

我认为问题在于密码中的#,这就是为什么我必须将密码写入引号中。


小智 18

您需要运行这两个命令

php artisan cache:clear
php artisan config:cache
Run Code Online (Sandbox Code Playgroud)


uma*_*hfr 14

我面临着同样的问题。一切都很好,但在

bootstrap / cache / config.php

始终使用不完整的密码。进一步挖掘后,意识到密码中包含“#”字符,并且该密码已被删除。由于“#”用于将一行标记为注释。

  • 您也可以将密码放入“。 (2认同)

Bla*_*arl 12

当我在共享主机上在线部署我的网站时,这些都不适合我,以下是我所做的工作.

.env文件中,我改变了

DB_HOST=127.0.0.1
Run Code Online (Sandbox Code Playgroud)

DB_HOST=localhost
Run Code Online (Sandbox Code Playgroud)

和中提琴,它按预期运作良好.


Omi*_*ani 12

如果您在使用localhost并以root身份登录之前被缓存

删除/bootstap/cache/config.php


小智 8

天啊!感谢 umair.ashfr 下面的回答,我终于解决了一个正在侵蚀我的神经元的问题。

我的 .env 上有一个像 DB_PASSWORD=ffjdh5#fgr 这样的密码,并且 MySQL 连接优雅地说“SQLSTATE[HY000] [1045] 用户访问被拒绝...”,无论我尝试使用哪种风格的 php artisan跑步。

问题是密码中的“#”符号。谨防!这意味着评论的开始,因此我的密码被默默地截断了!解决方案是声明密码,如 DB_PASSWORD="ffjdh5#fgr"

问候


小智 7

我有同样的问题,所以我意识到.env文件不接受特殊字符,因为我的密码有这些字符,我在config/database.php文件中添加了密码。


Y. *_*gha 5

这对我有效:

php artisan config:clear
php artisan cache:clear
php artisan config:cache
Run Code Online (Sandbox Code Playgroud)

谢谢。


Arm*_*n H 5

我遇到了同样的问题我做了什么

  1. php artisan 缓存:清除
  2. php artisan 配置:缓存

但发现了与我运行此 artisan 命令相同的问题

php artisan 视图:清晰

希望它会有所帮助。


Naz*_*que 5

当密码包含特殊字符时会发生这种情况,在这种情况下,我们可以将密码放入字符串中,例如

DB_PASSWORD="您的密码"

就我而言,效果很好

  • 已经在其他答案中解释过,例如/sf/answers/4750047081/ (2认同)