尝试使用 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 应该可以解决问题,同时注意其他任何地方可能使用了密码。
我正在尝试将我最近升级的 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 应该可以解决问题,同时注意其他任何地方可能使用了密码。