Laravel PDOException error in Connector.php line 5

2019-06-06 23:36发布

问题:

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.

回答1:

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



回答2:

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