Laravel:SQLSTATE [28000] [1045]访问被拒绝用户'宅基'@'localhost'

时间:2015-03-30 12:07:22

标签: laravel pdo

我刚刚安装了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,
        ],

希望有人可以帮助我:)。

7 个答案:

答案 0 :(得分:25)

我尝试对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,密码为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附带的注册表单进行所有更改后,我尝试将用户添加到我的数据库中我收到以下错误

laravel database connection error

完成所有更改后,我清除了缓存并再次加载它,它现在似乎对我有效! 如果任何人也面临同样的问题,只需运行以下命令

php artisan cache:clear
php artisan config:cache

答案 1 :(得分:4)

我想通了:)不得不机会.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');
}

答案 2 :(得分:1)

尝试查看" .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

答案 3 :(得分:0)

在** config>中对database.php文件进行更改本地> database.php 而不是改变配置> database.php文件。

希望它能起作用;)

答案 4 :(得分:0)

实际上当你使用像xampp这样的localhost服务器时,你手动创建数据库" homestead",这样的错误是由于缺少数据库参数。 100%的工作测试,看看

点击你的cmd并输入:

create database homestead;  

答案 5 :(得分:0)

创建laravel项目后,我遇到了同样的问题。 authentication命令成功运行。

 php artisan make:auth

但是当我尝试注册或登录时,我遇到了同样的错误。我运行以下命令

    php artisan config:clear

然后停止了laravel应用程序以及我的服务器。重新启动laravel应用和服务器后,一切正常。

答案 6 :(得分:0)

尝试了所有解决方案,但对我没有帮助

这是第一次尝试的方法:

  

如果您使用的是PHP的默认Web服务器(例如php artisan serve),则需要在更改.env文件值后重新启动服务器。

我从这里laravel.io找到了这个解决方案(请阅读Byjml的解决方案)