
[英]SQLSTATE[HY000] [1045] Access denied for user 'homestead'@'localhost' (using password: YES)
[英]Laravel 5 error SQLSTATE[HY000] [1045] Access denied for user 'homestead'@'localhost' (using password: YES)
我已成功安装 Laravel 5 并将数据库中的 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'的访问被拒绝
它现在正在工作。 我不得不重新启动服务器。 谢谢
我面临着同样的问题。 一切都很好,但在
引导程序/缓存/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
文件中添加了密码。
我遇到了同样的问题我做了什么
但是发现与我运行此工匠命令相同的问题
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 配置以某种方式被改变了。
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
编辑 Laravel 根目录中的 .env 文件。 make 如下所示:
DB_HOST=localhost DB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD=your-root-pas
还要在 phpmyadmin 中创建一个名为“laravel”的数据库。
运行以下命令:
php artisan cache:clear php artisan config:cache php artisan config:clear php artisan migrate
它对我有用,XAMPP 与 Apache 和 MySQL。
最好的解决办法是。 不要在 db 用户密码中使用特殊字符。 如果你真的想使用特殊字符然后使用 double cote "" 在.env
文件中更改密码后,你必须删除/bootstap/cache/config.php
config.php文件或与其他人重命名。
只需要删除下一个文件:bootstap/cache/config.php
只需在终端中运行它
php 工匠优化
然后重新启动
php 工匠服务
当密码包含特殊字符时会发生这种情况在这种情况下我们可以将密码放入字符串中
在我的情况下,工作正常
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.