首页 文章

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

提问于
浏览
10

我刚刚安装了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 回答

  • 4

    我试图对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,
            ],
    

    我没有使用任何VM,我使用的是我的本地机器,数据库用户为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
    
  • 25

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

    在** config> local> database.php中对database.php文件进行更改,而不是更改config> database.php文件 .

    希望它能起作用;)

  • 0

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

    点击你的cmd并输入:

    create database homestead;
    
  • 0

    尝试检查根目录中的“.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
    
  • 0

    创建laravel项目后,我遇到了同样的问题 . 身份验证命令成功运行 .

    php artisan make:auth
    

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

    php artisan config:clear
    

    然后停止laravel应用程序和我的服务器 . 重新启动我的laravel应用程序和服务器后一切正常 .

  • 0

    在这里尝试了所有的解决方案,但没有为我工作

    这是第一次尝试:

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

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

相关问题