laravel 5 中的数据库连接问题

problems with database connection in laravel 5

我使用命令 php artisan migrate 来迁移我的数据库连接,但我仍然遇到同样的错误,我检查了所有内容,没有错。我使用了我在 Laravel 4.2

中一直使用的相同连接

这是我在控制台上收到的消息:

exception 'PDOException' with message 'SQLSTATE[HY000] [1045] Access denied for user 'homestead'@'localhost' (using password: YES)' in C:\xampp\htdocs\Projects\blog\vendor\laravel\framework\src\Illuminate\Database\Connectors\Connector.php:47

您需要更改位于项目根文件夹中的 .env 文件中的值。

如果没有.env文件,将.env.example文件复制到.env.

Laravel 使用此文件来保护您的密码。您设置的值仅在 .env 文件中没有可用配置时使用,homestead 是那里的标准用户。

You can go to .env file. File available on Project Root folder.

Then some here related to your database.

Then run below command to clear the old configuration cache.

php artisan config:clear

看看你的config/database.php和.envfile.Maybe你的数据库信息不一样

也有这个问题。更新 .env 和 运行 php artisan config:clear 后问题仍然存在!然后在停止服务器并使用 php artisan serve 重新启动服务器后,问题已解决!

更改 database.php

中的以下属性
'mysql' => [
            'driver'    => 'mysql',
            'host'     => env('DB_HOST', 'localhost'),
            'database' => env('DB_DATABASE', 'forge'),
            'username' => env('DB_USERNAME', 'forge'),
            'password' => env('DB_PASSWORD', ''),
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,
]

 'mysql' => [
            'driver'    => 'mysql',
            'host'      => 'localhost',
            'database'  => 'laravel',
            'username'  => 'root',
            'password'  => '',
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
            'strict'    => false,
        ],

这必须运行良好然后 运行 以下命令:

php artisan migrate:install

我通过使用 config/database.php 文件更新 .env 文件来解决这个问题。

这是我的 config/database.php 结构(我使用的是 mysql)

    'mysql' => [
        'driver'    => 'mysql',
        'host'      => env('DB_HOST', 'localhost'),
        'database'  => env('DB_DATABASE', 'larablog'),
        'username'  => env('DB_USERNAME', 'root'),
        'password'  => env('DB_PASSWORD', ''),
        'charset'   => 'utf8',
        'collation' => 'utf8_unicode_ci',
        'prefix'    => '',
        'strict'    => false,
    ],

.env文件结构(与config/database.php)

 DB_HOST=localhost      // Host name
 DB_DATABASE=larablog   // Database name
 DB_USERNAME=root       // Database User
 DB_PASSWORD=           // Db password(No password here) 

如果您使用 sqlite 作为数据库,请确保您已安装 php5-sqlite

sudo apt-get install php5-sqlite

如果已安装,则可能是您的 .env 文件有问题。替换

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

有了这个

DB_CONNECTION=sqlite
DB_HOST=127.0.0.1
DB_PORT=3306

更新我的 .env 文件中的数据库信息后,我遇到了同样的错误。 修复了退出命令提示符并重新 运行 php artisan serve 命令的问题 它帮助了我,可能对你有帮助。