Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Laravel: SQLSTATE[28000] [1045] Access denied for user 'homestead'@'localhost'

Tags:

laravel

pdo

I just installed laravel and made a migration. But when i try to run it i get this error:

[PDOException]                                                               
  SQLSTATE[28000] [1045] Access denied for user 'homestead'@'localhost' (using password: YES)  

Can anyone tell me what is wrong? I think the Database.php file looks different than normal. Is this something new in the new Laravel?

My Database config:

'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,
        ],

Hope someone can help me :)

like image 938
Kevin Steen Hansen Avatar asked Mar 30 '15 12:03

Kevin Steen Hansen


3 Answers

Try to check out the ".env" file in your root directory. These values are taken first. Yours are just the defaults if there are none given in the .env file.

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
like image 186
naib khan Avatar answered Sep 21 '22 05:09

naib khan


I tried to make changes to database.php file present within config folder it looks something like this

'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,
        ],

I am not using any VM, I am using my local machine, with the database user as root and password a null.

I have also changed my .env file and it looks something like this:

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

Even after doing all the changes when I try to register using the registration form that is shipped with laravel, I try to add a user to my database I get the following error

laravel database connection error

After doing all the changes I cleared the cache and loaded it again and it seems to work for me now! if any one is also facing the same issue just run the following commands

php artisan cache:clear
php artisan config:cache
like image 36
Supravat Mondal Avatar answered Sep 22 '22 05:09

Supravat Mondal


I figured it out :) Had to chance the .env file :)

Is there any changes in the schemaes?

Shouldn't this work:

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');
}
like image 38
Kevin Steen Hansen Avatar answered Sep 24 '22 05:09

Kevin Steen Hansen