为什么 Laravel 中的 .env 文件配置不起作用

问题描述 投票:0回答:9
DB_CONNECTION=mysql      
DB_HOST=127.0.0.1     
DB_PORT=3306     
DB_DATABASE=
DB_USERNAME=root     
DB_PASSWORD=   

这是我的 Laravel 5.4 配置 但 php artisan migrate 无法正常工作并且有错误 和迁移错误

Users-MacBook-Pro: ATP Developers php artisan migrate

In Connection.php line 664: 
SQLSTATE[HY000] [1045] Access denied for user ''@'localhost' (using password: NO) (SQL: select * from information_schema.tables where table schema = atp_db and table_name = migrations)

In Connector.php line 87:
SQLSTATE[HY000] [1045] Access denied for user ''@'localhost' (using password: NO)
laravel file laravel-4 environment-variables
9个回答
6
投票

我也遇到了类似的问题。因此,我运行以下命令,如所述 https://laracasts.com/discuss/channels/general-discussion/env-file-and-config-keys-not-updating-after-change


php artisan cache:clear
php artisan config:clear
php artisan route:clear

另外,请确保重新启动服务器

php artisan serve

2
投票

你应该写下这些:

DB_DATABASE = your database name
DB_USERNAME = root     
DB_PASSWORD = your password

并再次运行

php artisan serve
以确保保存
.env
并再次运行
php artisan migrate


1
投票

确实我也遇到了同样的问题,我无法解释为什么 Laravel 指示旧主机,但解决方案是更改密码。

使用下面=>

php artisan config:cache


0
投票

将环境主机条目更改为

DB_HOST=localhost
。或者将@'127.0.0.1'凭据添加到mysql。


0
投票

该错误表明您的数据库中没有正确的用户和主机组合。 env 文件显示主机为 127.0.0.1,但错误中指定了 localhost。将 user@localhost 条目添加到数据库或 user@% 作为通配符。


0
投票

此错误表明您没有在 .env 文件中配置数据库用户: ''@'localhost' 。 在运行连接到数据库的任何函数之前,您的 .env 应该使用您配置的数据库名称和凭据填充所有这些字段。

以下是在运行 php artisan migrate 之前设置数据库和 .env 文件的初步步骤:

希望有帮助。

第1步:登录您的mysql并创建数据库。

mysql -u root -p
create database just_brew_it;

第 2 步: 虽然您可以使用 root 通过 laravel 进行身份验证,但我会创建一个新用户以减轻任何安全问题的风险:

GRANT ALL PRIVILEGES ON just_brew_it.* TO 'brew_user'@'%' identified by 'pint0fStell@' WITH GRANT OPTION;
FLUSH privileges;

第 3 步: 使用适当的数据库、用户名和密码修改您的 .env

DB_CONNECTION=mysql      
DB_HOST=127.0.0.1     
DB_PORT=3306     
DB_DATABASE= just_brew_it
DB_USERNAME= brew_user
DB_PASSWORD= pint0fStell@

0
投票

这个组合对我有用:

php artisan clear-compiled 
composer dump-autoload
php artisan optimize

0
投票

我花了近 24 小时尝试了我发现的 Laravel Artisan Clear Optimize bla bla 等所有解决方案,但没有任何效果

我后来在 vscode 之外的 powershell 中启动服务器后意识到这一点,那就是新实例开始从我的环境中选择的时候

所以大家尝试在 powershell 中而不是在 vscode 中运行 php artisanserve 看看


-1
投票

我遇到了同样的问题,即使使用 Artisan::call('config:cache'); 也无法运行“config:cache”artisan 命令。

所以我这样做并解决了我的问题:

artisan config:cache 将 /config 中的所有文件缓存到它存储的单个数组中。然后,它从该数组中读取所有配置变量,并忽略 .env 或 /config 文件中的任何内容,直到您重新缓存它们。这就是为什么删除 .env 后它仍然有效。

https://laravel.com/docs/5.6/configuration#configuration-caching

如果您没有 ssh 访问实时服务器的权限,则只需删除 bootstrap/cache/config.php 文件,该文件是 config:cache 生成的缓存文件。

© www.soinside.com 2019 - 2024. All rights reserved.