我基于moving Laravel project between computers转移了一个Laravel项目
乍一看一切都很好。我可以毫无问题地安装作曲器,然后在.env中设置环境变量,例如数据库名称,数据库用户等。
当我开始使用以下命令时,
php artisan cache: clear
我遇到了这两个错误,
在Connection.php第664行中:
SQLSTATE [HY000] [1045]用户'root'@'localhost'的访问被拒绝(使用密码:是)(SQL:从information_schema.tables中选择*,其中tabale_schema = ***和table_name = ****)在Connector.php第67行中:
SQLSTATE [HY000] [1045]用户'root'@'localhost'的访问被拒绝(使用密码:是)
其他信息:
答案 0 :(得分:0)
将Laravel项目移动到另一个位置后,要做的第一件事是通过从应用程序根目录运行命令来重新生成APP_KEY
文件中的.env
:
php artisan key:generate
然后,您重新配置缓存:
php artisan config:cache
此外,请确保.env
文件和config/database.php
中的所有数据库参数均正确,并且与以前的Laravel设置相同-您可以手动更改它们,然后重新配置缓存,如上所示。如果没有更改(例如,数据库名称已更改),则可能必须重新运行数据库迁移和种子服务器:
php artisan migrate
和
php artisan db:seed
答案 1 :(得分:0)
考虑到您使用的是apache,我认为apache用户无法写入配置文件。确保您已授予用户引导/缓存的写权限。该目录包含已缓存的配置文件。如果是这种情况,则将从此处加载祝贺,并加载您以前使用的配置,这可能会导致问题。
此外,您还需要授予对存储目录的写许可权。因为有日志文件,所以apache用户也需要在上面写。
答案 2 :(得分:0)
打开.env
文件并进行编辑。只需设置正确的数据库凭据即可:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE= // Your Database Name
DB_USERNAME= // Your Database Username, If no username has been set then by default there is a root as a username
DB_PASSWORD= // Your Database Password, If no password is set on the database, clear it
完成.env
编辑后,请在您的终端中输入以下命令以清除缓存:
php artisan config:cache
如果仍然存在相同的错误,请尝试其他可能的解决方案。
我也遇到过同样的问题,我在StackOverflow中尝试了所有可能的答案,但没有任何帮助,此解决方案在第一次尝试时起作用:
如果您使用的是PHP的默认Web服务器(例如php artisan serve
),则需要在更改.env
文件值后重新启动服务器。
我从这里laravel.io找到了这个解决方案(请阅读Byjml的解决方案)