繁体   English   中英

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

Laravel 5 error SQLSTATE[HY000] [1045] Access denied for user 'homestead'@'localhost' (using password: YES)

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我已经成功安装了 Laravel 5 并将配置目录中 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,
        ],

我不想使用宅基地,我已将 .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

我不明白为什么它说 'homestead'@'localhost' 访问被拒绝

29 个回复

它现在正在工作。 我不得不重新启动服务器。 谢谢

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

引导程序/缓存/config.php

总是有不完整的密码。 进一步挖掘后,意识到密码中有“#”字符,并且正在被删除。 因为 '#' 用于将一行标记为注释。

你需要运行这两个命令

php artisan cache:clear
php artisan config:cache

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

.env文件中,我改变了

DB_HOST=127.0.0.1

DB_HOST=localhost

和中提琴,它按预期工作得很好。

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

DB_PASSWORD=#Root2020$

更新

DB_PASSWORD="#Root2020$"

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

如果您之前使用 localhost 和 root 您的文件被缓存

删除/bootstap/cache/config.php

这对我有用:

php artisan config:clear
php artisan cache:clear
php artisan config:cache

谢谢。

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

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

  1. php工匠缓存:清除
  2. php工匠配置:缓存

但是发现与我运行此工匠命令相同的问题

php工匠视图:清除

希望它会有所帮助。

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

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

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

问候

而不是使用这个

DB_HOST=localhost
DB_DATABASE=wdcollect
DB_USERNAME=root
DB_PASSWORD=

用这个

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

您不需要在 database.php 文件中设置凭据。 如果您在 .env 中有凭据就足够了

如果您能够直接登录数据库,那么此密码必须有效。 您的环境可能与此文件中定义的“本地”环境不同。 测试使用“php artisan env”

尝试检查根目录中的“.env”文件。 这将是一个隐藏文件。 更正这些值。

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

在 .env 文件中声明像 DB_PASSWORD="2o0@#5TGR1NG" 这样的密码

如果 # 符号包含在您的密码中,则密码将在“”之间声明。

请更新以下文件。

供应商 - .env - 在线#7

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

而不是宅基地用户您的数据库,用户名和密码。 这应该对你有用。

如果你在 MAMP

检查您的端口号,通常它是

主机本地主机

8889端口

用户根

密码根

套接字/Applications/MAMP/tmp/mysql/mysql.sock

就我而言,它实际上是 root 用户权限问题。 我的Laravel配置都是完美的,但后来我发现这是 root 用户权限问题,因为我的 MySQL 配置以某种方式被改变了。

  • 所以我导航到 xampp 文件夹 > C:\\xampp\\mysql\\bin
  • 搜索 my.ini 文件并在编辑器中打开它,然后在以下位置添加了添加的skip-grant-tables

[mysqld] skip-grant-tables port=3306

它奏效了。

/bootstap/cache/(手动删除所有缓存文件)

在我的情况下,问题是密码中的 #,这就是 Laravel 显示错误的原因,如果密码中有特殊字符,则必须将密码写入引号中。

DB_PASSWORD=Test@123##   //not working without double quotes.

DB_PASSWORD="Test@123##" //working with double quotes. 

请更新 .env 文件

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

然后重启服务器

我也想出了这个...然后我通过将数据库信息直接放在“database.php”中来解决它在你的情况下,我会像这样更改信息

mysql' => [
        'driver'    => 'mysql',
        'host'      => 'localhost',
        'database'  => 'wdcollect',
        'username'  => 'root',
        'password'  => '',
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        'strict'    => false,
    ],

并且不要忘记更改 XAMPP 的 config.inc 中的设置

['auth_type'] = 'config';
['Servers'][$i]['user'] = 'root';
['Servers'][$i]['password'] = '';
['AllowNoPassword'] = true;

将 .env 文件和 config.php 文件与您的用户名和密码以及数据库设置中的主机名匹配。如果它们不相等,则关系将不会连接。

.env 文件应与 mysql 数据库具有相同的数据库名称、用户名和密码,并检查是否授予用户访问数据库的所有权限。 我通过在数据库名称和用户名前面添加 cpanel 用户名解决了我的问题,例如 jumbo_admingo 和 jumbo_user1,其中 jumbo 是我的 cpanel 用户名,admingo 是我在 mysql 中创建的数据库名称,user1 是已提供访问权限的用户数据库管理。 这解决了我的问题。

原因是旧的数据库凭据被缓存/bootstap/cache/config.php

在 .env 文件中,我修改如下

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

然后删除该文件

/bootstap/cache/config.php 

如果问题仍然存在,您可以尝试以下操作。

php artisan 配置:清除 php artisan 缓存:清除 php artisan 配置:缓存

通过编写exit命令退出 vagrant 然后重新启动 vargarnt/homestead 配置

vagrant reload --provision

然后再次打开vagrant

Vagrant Up
Vagrant ssh
  1. 编辑 Laravel 根目录中的 .env 文件。 make 如下所示:

     DB_HOST=localhost DB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD=your-root-pas
  2. 还要在 phpmyadmin 中创建一个名为“laravel”的数据库。

  3. 运行以下命令:

     php artisan cache:clear php artisan config:cache php artisan config:clear php artisan migrate

它对我有用,XAMPP 与 Apache 和 MySQL。

在 XAMPP 上打开终端 > 转到/opt/lampp/htdocs/project_name > 运行php artisan migrate

.env 文件

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=8080
DB_DATABASE=database_name
DB_USERNAME=root
DB_PASSWORD=

laravel:php artisan 在 xampp 终端上迁移

在我的情况下,我想连接到安装在 Windows 上的数据库,我曾经通过工作台访问,所以我用我通过在 Windows 命令提示符下键入ipconfig获得的 IP 地址替换了 localhost 在此处输入图片说明

最好的解决办法是。 不要在 db 用户密码中使用特殊字符。 如果你真的想使用特殊字符然后使用 double cote "" 在.env文件中更改密码后,你必须删除/bootstap/cache/config.php config.php文件或与其他人重命名。

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

DB_PASSWORD="您的密码"

在我的情况下,工作正常

1 SQLSTATE[HY000] [1045] 用户 'homestead'@'localhost' 访问被拒绝(使用密码:YES)

我对 Laravel 框架相当陌生。 尝试注册用户时,我不断收到此错误。 我能够进行表迁移,所以我知道连接有效。以下是我在 .env 文件中的信息。 我也能够成功迁移,请查看以下内容。 database.php 文件的当前配置 该数据库还保存迁移的 SQL 文件。 因此连接有效,但实际上尝 ...

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

我在实时共享主机上使用 laravel,尽管使用了正确的数据库连接凭据,但仍出现上述错误。 我编辑了 .env 和 database.php 文件并添加了必要的凭据。 我的问题是相同的凭据正在处理我编写用于测试但不在 laravel 的原始 php 文件。 laravel 项目虽然在本地主机上正常 ...

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

我在 Laravel 中创建了一个应用程序,并使用 localhost MySQL 数据库完成了它。 当我使用 localhost XAMPP 数据库时,我的应用程序运行良好,但是,当我在新购买的共享主机上部署我的 Laravel 应用程序并在cpanel创建一个数据库并针对该数据库创建一个拥有所有 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM