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)
我也遇到了类似的问题。因此,我运行以下命令,如所述 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
你应该写下这些:
DB_DATABASE = your database name
DB_USERNAME = root
DB_PASSWORD = your password
并再次运行
php artisan serve
以确保保存 .env
并再次运行 php artisan migrate
确实我也遇到了同样的问题,我无法解释为什么 Laravel 指示旧主机,但解决方案是更改密码。
使用下面=>
php artisan config:cache
将环境主机条目更改为
DB_HOST=localhost
。或者将@'127.0.0.1'凭据添加到mysql。
该错误表明您的数据库中没有正确的用户和主机组合。 env 文件显示主机为 127.0.0.1,但错误中指定了 localhost。将 user@localhost 条目添加到数据库或 user@% 作为通配符。
此错误表明您没有在 .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@
这个组合对我有用:
php artisan clear-compiled
composer dump-autoload
php artisan optimize
我花了近 24 小时尝试了我发现的 Laravel Artisan Clear Optimize bla bla 等所有解决方案,但没有任何效果
我后来在 vscode 之外的 powershell 中启动服务器后意识到这一点,那就是新实例开始从我的环境中选择的时候
所以大家尝试在 powershell 中而不是在 vscode 中运行 php artisanserve 看看
我遇到了同样的问题,即使使用 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 生成的缓存文件。