Laravel:SQLSTATE [28000] [1045] 用户 'homestead'@'localhost' 的访问被拒绝
Posted
技术标签:
【中文标题】Laravel:SQLSTATE [28000] [1045] 用户 \'homestead\'@\'localhost\' 的访问被拒绝【英文标题】:Laravel: SQLSTATE[28000] [1045] Access denied for user 'homestead'@'localhost'Laravel:SQLSTATE [28000] [1045] 用户 'homestead'@'localhost' 的访问被拒绝 【发布时间】:2015-06-03 10:43:17 【问题描述】:我刚刚安装了 laravel 并进行了迁移。但是当我尝试运行它时,我得到了这个错误:
[PDOException]
SQLSTATE[28000] [1045] Access denied for user 'homestead'@'localhost' (using password: YES)
谁能告诉我有什么问题?我认为 Database.php 文件看起来与正常情况不同。这是新 Laravel 中的新功能吗?
我的数据库配置:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'LaraBlog'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', 'root'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
希望有人可以帮助我:)
【问题讨论】:
修复或授予所需用户对数据库的访问权限。 添加你的 laravel 版本,查看.env
-file 。您是否知道,您 db-access 的数据驻留在 .env 文件中?查询中的用户名和密码是否正确?还是这些是默认值?
更新我的 .env 文件并运行 php artisan config:clear
为我解决了这个问题
【参考方案1】:
我试图对 config 文件夹中的 database.php 文件进行更改,它看起来像这样
'default' => 'mysql',
....
...
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'sample'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
我没有使用任何虚拟机,我使用的是本地计算机,数据库用户为 root,密码为空。
我还更改了我的 .env 文件,它看起来像这样:
APP_ENV=local
APP_DEBUG=true
APP_KEY=zLzPMzs5W4FNNuguTmbG8M0iFqhIVnsP
DB_HOST=localhost
DB_DATABASE=sample
DB_USERNAME=root
DB_PASSWORD=null
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
即使在我尝试使用 laravel 附带的注册表单进行注册时进行了所有更改后,我还是尝试将用户添加到我的数据库中,但出现以下错误
完成所有更改后,我清除了缓存并再次加载它,现在它似乎对我有用! 如果有人也面临同样的问题,只需运行以下命令
php artisan cache:clear
php artisan config:cache
【讨论】:
非常感谢。两个工匠命令拯救了我的一天。 Laravel 有时会变得讨厌。 也为我工作.. Thnx ! 最近刚开始使用 Laravel 5.4 并且遇到了同样的问题。这些命令帮助很大。 我应该记下这两行。像魅力一样工作。 php artisan 缓存:清除 php artisan 配置:缓存【参考方案2】:我想通了 :) 不得不碰碰 .env 文件 :)
架构有什么变化吗?
这不应该工作吗:
public function up()
// Create table with columns
Schema::create('users', function($table)
$table->increments('id');
$table->string('username');
$table->string(Hash::make('password'));
$table->string('firstname');
$table->string('lastname');
$table->string('email')
$table->string('role');
$table->timestamps();
);
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
// Insert table to database
Schema::drop('users');
【讨论】:
忘记了;之后(电子邮件)【参考方案3】:尝试检查根目录中的“.env”文件。首先取这些值。如果 .env 文件中没有给出,则您的只是默认值。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=Your_Database_Name
DB_USERNAME=Your_UserName
DB_PASSWORD=Your_Password
【讨论】:
【参考方案4】:在 **config > local >database.php 中修改 database.php 文件 而不是更改 config > database.php 文件。
希望它会起作用;)
【讨论】:
【参考方案5】:实际上,当您使用像 xampp 这样的 localhost 服务器时,您会手动“homestead”创建数据库,此类错误是由于缺少数据库参数造成的。 100% 工作测试并查看
点击你的 cmd 并输入:
create database homestead;
【讨论】:
【参考方案6】:我在创建 laravel 项目后遇到了同样的问题。验证命令运行成功。
php artisan make:auth
但是当我尝试注册或登录时,我得到了同样的错误。我运行以下命令
php artisan config:clear
然后停止 laravel 应用程序以及我的服务器。重新启动我的 laravel 应用程序和服务器后一切正常。
【讨论】:
【参考方案7】:在这里尝试了所有解决方案,但对我没有用
第一次尝试就成功了:
如果您使用的是 PHP 的默认 Web 服务器(例如
php artisan serve
),您需要在更改.env
文件值后重新启动服务器。
我从这里laravel.io找到了这个解决方案(阅读Byjml的解决方案)
【讨论】:
以上是关于Laravel:SQLSTATE [28000] [1045] 用户 'homestead'@'localhost' 的访问被拒绝的主要内容,如果未能解决你的问题,请参考以下文章
PDOException SQLSTATE[28000] [1045] 用户'homestead'@'localhost'的访问被拒绝
发生连接授权失败。原因:GSSAPI 服务器凭据无效。错误代码=-4214,SQLSTATE=28000
DB2,原因:密码已到期。 ERRORCODE=-4214, SQLSTATE=28000
SQLSTATE[HY000] [1049] 未知数据库 'laravel'