我转移了一个基于moving Laravel project between computers的Laravel项目
第一眼看起来一切都很好。我可以安装 composer 没有任何问题,然后我设置我的环境变量在我的.env,如数据库名称,数据库用户等。
当我开始使用以下命令时,
php artisan cache: clear
我得到了这两个错误,
在Connection.php第664行中:
SQLSTATE[HY 000] [1045]使用者'root'@'localhost'的存取被拒(使用密码:是)(SQL:从信息模式.表中选择 *,其中表模式=*且表名称=**)
在Connector.php的第67行:
SQLSTATE [HY 000] [1045]拒绝使用者'root'@'localhost'的存取(使用密码:是的)
更多信息:
1.应用程序似乎未读取.env,因为当我浏览应用程序主页时,出现了显示环境变量为空的“Whoops”错误。x1c 0d1x
1.我测试了我的数据库连接,如它的用户名,密码,和其他参数,我知道他们都工作正常。
最后,我附上了一张照片,以便详细说明问题。
1.有趣的是,在我的.env文件中,DB_DATABASE值为“nlp”,DB_USERNAME等于“Javad”,但正如您在错误中看到的,它们不起作用,Artisan假定root为用户!
4条答案
按热度按时间y0u0uwnf1#
将Laravel项目移动到另一个位置后,首先要做的是从应用程序根目录运行以下命令,在
.env
文件中重新生成APP_KEY
:然后,重新配置缓存:
此外,请确保
.env
文件和config/database.php
中的所有数据库参数都正确,并且与以前的Laravel设置相同-您可以手动更改这些参数,然后如上所示重新配置高速缓存。如果不正确(例如,数据库名称已更改),则可能需要再次重新运行数据库移植和种子程序:和
zqry0prt2#
我认为apache用户无法写入配置文件,因为您使用的是apache。请确保您已为该用户提供了bootstrap/cache的写入权限。此目录包含缓存的配置文件。如果是这样,则会从此处加载恭喜您的配置,并加载可能导致此问题的之前使用的配置。
你也需要给存储目录写权限。因为有日志文件,apache用户也需要写。
qv7cva1a3#
打开
.env
文件并编辑它。只需设置正确的DB凭据:完成
.env
编辑后,请在终端中输入以下命令以清除缓存:如果仍然存在相同的错误,请尝试其他可能的解决方案。
我也面临同样的问题,我尝试了所有可能的答案在StackOverflow,但没有什么可以帮助我,这个解决方案工作的第一次尝试:
如果您使用的是PHP的默认Web服务器(例如
php artisan serve
),则需要在更改.env
文件值后重新启动服务器。我从这里找到了这个解决方案laravel.io(阅读Byjml的解决方案)
sqyvllje4#
**步骤1:**转到项目路径
project_name\bootstrap\cache
文件夹,并从所述文件夹中删除标记的文件config.php
。x1c 0d1x**步骤2:**运行以下命令
我希望它现在能起作用!