1
votes

I am beginner in Laravel PHP framework.That's why i am trying basic task from HERE (Laravel.com) .I followed this basic task step by step.But after finishing this i am getting an error .I am putting the error here.

PDOException in C:\xampp\htdocs\quickstart\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php line 55: SQLSTATE[HY000] [1045] Access denied for user 'homestead'@'localhost' (using password: YES)

What is the meaning of this error?

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

Here is my .env file.

DB_HOST=localhost
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

I have found similar problem in here. But there is no proper solution of it.

Here i add few lines (48 to 63) from Connector.php .

public function createConnection($dsn, array $config, array $options)
{
    $username = Arr::get($config, 'username');

    $password = Arr::get($config, 'password');

    try {
        $pdo = new PDO($dsn, $username, $password, $options);
    } catch (Exception $e) {
        $pdo = $this->tryAgainIfCausedByLostConnection(
            $e, $dsn, $username, $password, $options
        );
    }

    return $pdo;
}

Really i do get right solution of it.Have anyone who can give me the right solution of it? BTW this is laravel 5.2.

Thanks in advanced.

3
Is your .env file readable/in the right position? because if it's not, Laravel will default to what's written in the config/database.php file. There's nothing wrong in your Connector.php, as the error clearly states Laravel's using some other kind of configsDamien Pirsy
i am also adding database details in config/database.php but it was not working.Chonchol Mahmud

3 Answers

1
votes

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

This means, that your provided username and password is incorrect. If you're using homestead, default username ir homestead and the password is secret. Also, You might need to change the database port, since the default laravel configuration will look for port 3306, but homestead runs on port 33060

So the .env file should look like this:

DB_HOST=127.0.0.1
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
DB_PORT=33060

Source

0
votes

You need to install php module for pdo_mysql

to do that run this command on your server

yum install php-mysqlnd

Then restart httpd service

service httpd restart

0
votes

Try to remove this file in directory

bootstrap/cache/config.php

or run in terminal

php artisan config:clear php artisan cache:clear