Laravel:SQLSTATE[28000] [1045] 用户 'homestead'@'localhost' 的访问被拒绝
Laravel: SQLSTATE[28000] [1045] Access denied for user 'homestead'@'localhost'
我刚刚安装 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,
],
希望有人能帮助我:)
我想通了 :) 偶然发现了 .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');
}
我尝试更改配置文件夹中的 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,密码为 null。
我也更改了我的 .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
在 **config > local >database.php 中的 database.php 文件中进行更改
而不是更改配置 > database.php 文件。
希望它能奏效 ;)
实际上,当您使用像 xampp 这样的本地主机服务器时,您需要手动创建数据库 "homestead",此类错误是由于缺少数据库参数造成的。 100% 工作测试并查看
点击您的 cmd 并输入:
create database homestead;
尝试检查根目录中的“.env”文件。首先采用这些值。如果 .env 文件中给出了 none,那么你的只是默认值。
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
我在创建 laravel 项目后遇到了同样的问题。认证命令运行成功。
php artisan make:auth
但是当我尝试注册或登录时,我遇到了同样的错误。我运行以下命令
php artisan config:clear
然后停止了 laravel 应用程序和我的服务器。重新启动我的 laravel 应用程序和服务器后一切正常。
尝试了这里的所有解决方案,但对我没有用
第一次尝试就成功了:
If you are using the PHP's default web server (eg. php artisan serve
) you need to restart your server after changing your .env
file values.
我从这里找到这个解决方案laravel.io(阅读Byjml的解决方案)
我刚刚安装 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,
],
希望有人能帮助我:)
我想通了 :) 偶然发现了 .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');
}
我尝试更改配置文件夹中的 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,密码为 null。
我也更改了我的 .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
在 **config > local >database.php 中的 database.php 文件中进行更改 而不是更改配置 > database.php 文件。
希望它能奏效 ;)
实际上,当您使用像 xampp 这样的本地主机服务器时,您需要手动创建数据库 "homestead",此类错误是由于缺少数据库参数造成的。 100% 工作测试并查看
点击您的 cmd 并输入:
create database homestead;
尝试检查根目录中的“.env”文件。首先采用这些值。如果 .env 文件中给出了 none,那么你的只是默认值。
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
我在创建 laravel 项目后遇到了同样的问题。认证命令运行成功。
php artisan make:auth
但是当我尝试注册或登录时,我遇到了同样的错误。我运行以下命令
php artisan config:clear
然后停止了 laravel 应用程序和我的服务器。重新启动我的 laravel 应用程序和服务器后一切正常。
尝试了这里的所有解决方案,但对我没有用
第一次尝试就成功了:
If you are using the PHP's default web server (eg.
php artisan serve
) you need to restart your server after changing your.env
file values.
我从这里找到这个解决方案laravel.io(阅读Byjml的解决方案)