我刚开始一个新的Laravel项目,我遇到了一些数据库连接问题。首先,我只有包附带的User模型。它也有迁移。我更新了我的env文件以获取数据库路径:
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=laravel_project1
DB_USERNAME=root
DB_PASSWORD=''
问题是,当我运行迁移命令
时php artisan migrate
它在我的数据库中创建了这些迁移。但现在当我只是想做User :: all();我遇到这个错误有点麻烦:
SQLSTATE[HY000] [1045] Access denied for user 'homestead'@'localhost' (using password: YES) (SQL: select * from `users`)
我甚至用这个命令清除了我的配置缓存:
php artisan config:clear
我不明白错误。
编辑:
'mysql' => [
'driver' => 'mysql',
'host' => 'localhost',
'port' => env('DB_PORT', '3306'),
'database' => 'laravel_project1',
'username' => 'root',
'password' => '',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
这似乎解决了这个问题,但我不明白为什么env文件不起作用,因为这是我所推荐的方式。
答案 0 :(得分:0)
Laravel的数据库配置工作方式是读取 /config/database.php 文件,因此如果您不想让Laravel从.env文件中读取配置,你只需要在 /config/database.php 中进行一些更改,例如:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'laravel_project1'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => true,
'engine' => null,
],
现在 /config/database.php 文件将读取你的.env文件,如果它无法读取,它将具有默认配置(这是每个env()函数的第二个参数以上...)
答案 1 :(得分:0)
正如Vasil Gerginski在我的问题下方的评论中所述,要结束这个问题。重新启动即可解决问题。
工匠启动时,它会缓存您的配置。因此,即使您进行更改,它也不会生效,直到您重新启动artisan服务器。