尝试使用 Laravel 5.1 升级推送到生产时出现 PDOException 错误

PDOException error when trying to push to production with Laravel 5.1 upgrades

我正在尝试将我最近升级的 Laravel 4.2 应用程序部署到我服务器上的 Laravel 5.1。一切似乎都正常,但是当我尝试 运行 php artisan migrate 时,出现以下错误:

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

我以前遇到过类似的错误,但这次我很确定我已经使用正确的数据库凭据设置了 .env 文件。令我困惑的是为什么它说 "using password: NO" 因为我知道我确实想要并且需要在我的数据库中使用密码,而且我认为当我的 Laravel 4.2 版本的数据库凭据不正确时遇到类似的问题时它有说 "using password: YES"。我猜这与问题有关 - 在我的 Laravel 5.1 代码中是否有办法将其从 "NO" 转换为 "YES",或者问题是否出在某种程度上我的数据库凭据还在吗?

我的config/database.phpmysql代码:

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

检查您的配置文件夹中的 database.php,将文件与 Github 存储库进行比较,并可选择重置您的用户密码。

显然,在 Laravel 4 和 Laravel 5.1 之间的某个时间点,默认的 .env 变量 DB_PASS 已更改为 DB_PASSWORD。所有其他默认变量名称似乎都没有改变。确保您的 .env 和 database.php 文件都包含更新的默认名称 DB_PASSWORD 应该可以解决问题,同时注意其他任何地方可能使用了密码。