Laravel .env 文件返回错误数据

Posted

技术标签:

【中文标题】Laravel .env 文件返回错误数据【英文标题】:Laravel .env file returns wrong data 【发布时间】:2019-02-22 05:35:15 【问题描述】:

我一直试图在 laravel 5.7.3 中从我的数据库中获取数据,但它似乎使用了错误的数据库名称、用户名和密码,因为它返回了此错误:

SQLSTATE[HY000] [1045] Access denied for user 'homestead'@'localhost' (using password: YES) (SQL: select * from `tasks`)

我的 .env 文件数据库部分也是根据我的需要设置的:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=mrdb
DB_USERNAME=root
DB_PASSWORD=

PS:我的应用环境仍然是本地的。我也可以使用artisan tinker 毫无问题地迁移并将数据放入数据库,但不能只从数据库中获取数据。

它起作用的唯一方法是将config/database.php mysql 部分更改为我的参数,我认为这不正确。

为什么调用数据库时 .env 不想要更改?

【问题讨论】:

您是否事先缓存了您的配置? php artisan config:clear 或用新的配置缓存覆盖 php artisan config:cache 没有做任何缓存 做了缓存并且成功了 如果您在单个服务器上运行多个站点需要使用config:cache,否则某些站点将使用错误 .env 文件/per要求。还要确保你只在配置文件中有env() 【参考方案1】:

Laravel 使用缓存来加快网站加载时间,laravel 缓存的其中一件事是位于 config/ 目录中的配置文件。这些文件中的大多数确实通过使用env() 帮助函数引用了.env 文件。

可以使用php artisan config:cache 创建配置缓存,然后将其存储在bootstrap/cache/config.php

要删除此特定缓存,您可以使用php artisan config:clear,清除所有缓存使用php artisan cache:clear

【讨论】:

【参考方案2】:

这是缓存问题,使用这些命令

php artisan cache:clear
php artisan config:cache

之后删除所有缓存文件,即里面

storage/framework/views

【讨论】:

以上是关于Laravel .env 文件返回错误数据的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5 - env() 总是返回 null

Laravel 路由问题:自动重定向到根文件夹

在 Laravel 中恢复 env.file 的操作

laravel 5.8 在 getenv 上返回 false

Laravel .env DB_HOST 127.0.0.1 与 localhost

Laravel 不读取面板中的 .env 文件