【问题标题】:Laravel can't read database credential form .env fileLaravel 无法从 .env 文件中读取数据库凭据
【发布时间】:2015-12-16 21:02:20
【问题描述】:

php 工匠迁移

[PDO异常]
SQLSTATE[28000] [1045] 用户'forge'@'localhost'的访问被拒绝(使用密码:否)

.env 文件

APP_ENV=local
APP_DEBUG=true
APP_KEY=JYi8UKIIoaXlU9vrkNkrpu0Y7VpkaA3X

DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=root
DB_PASSWORD=homestead

CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_DRIVER=sync

我没有对database.php做任何改动

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

当我运行时:php artisan env

如果我将环境更改为生产,它会显示本地,它会显示生产。 我不明白为什么mysql不能工作。

也在前端展示:

哎呀,好像出了点问题。

Laravel 错误页面显示类似于生产环境。 在apache错误日志中没有任何错误。

我被这个问题困住了。 我更改了文件权限清除 laravel 缓存。我无法使其工作。我正在使用 vagrant 。新的 laravel 安装工作正常。 请帮帮我。

【问题讨论】:

  • 您真的在使用“Homestad”吗?您在此处显示的是 Laravel 默认配置,您需要使用自己的数据库凭据进行更改。
  • 感谢您的响应。我正在使用 ubuntu/trusty64 和 apache 服务器。数据库名称 homestad
  • 但您使用的是“.env”文件中的默认凭据。您需要使用数据库连接凭据更改这些值。至少,如果您展示的是您的真正证书,而我不是。
  • 我上面的数据库凭证没问题。我猜 laravel 只读取了我的 env 文件的第一行。
  • 我正在安装新的 laravel 5.1 并将所有文件复制到新安装中,它工作正常。我有备份错误之一。我想找到问题。

标签: laravel-5.1


【解决方案1】:

您可能已经缓存了配置。尝试在生产环境中运行 artisan config:clear 或 artisan config:cache。

artisan config:clear 将删除您可能拥有的所有缓存并开始使用您的 .env 代替。这在生产服务器上显然不是最佳的,这也是config:cache 命令的原因。

【讨论】:

  • 非常感谢。其作品。首先我只清除缓存没有清除配置:)
  • 是的,这让我的头脑在足够多的时间里最终卡住了。
  • 谢谢,config:clear 从偶尔不可用的配置值中救了我一命。
猜你喜欢
  • 1970-01-01
  • 2019-05-14
  • 2018-11-25
  • 2019-01-29
  • 2019-07-09
  • 2023-03-03
  • 2019-02-23
  • 2020-12-17
相关资源
最近更新 更多