Laravel 没有正确读取 database.php 配置
Laravel not reading database.php config correctly
我在 Laravel 中遇到一个奇怪的问题,它正在寻找连接 mysql
而没有名为 mysql
的连接。在我的 database.php
配置中,我将默认连接设置为:
'default' => env('DB_CONNECTION', 'permissions'),
在我的 .env
文件中,我有一行:
DB_CONNECTION=permissions
这是堆栈跟踪:
local.ERROR: InvalidArgumentException: Database [mysql] not configured. in D:\Development\Permissions\vendor\laravel\framework\src\Illuminate\Database\DatabaseManager.php:239
Stack trace:
#0 D:\Development\Permissions\vendor\laravel\framework\src\Illuminate\Database\DatabaseManager.php(158): Illuminate\Database\DatabaseManager->getConfig('mysql')
#1 D:\Development\Permissions\vendor\laravel\framework\src\Illuminate\Database\DatabaseManager.php(68): Illuminate\Database\DatabaseManager->makeConnection('mysql')
#2 D:\Development\Permissions\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Model.php(3348): Illuminate\Database\DatabaseManager->connection('mysql')
#3 D:\Development\Permissions\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Model.php(3314): Illuminate\Database\Eloquent\Model::resolveConnection(NULL)
我将问题追溯到对 vendor\laravel\framework\src\Illuminate\Database\DatabaseManager->getDefaultConnection()
的调用。由于某些原因,即使默认连接设置为 permissions
,returns 的连接名称也是 mysql
。以下是供参考的功能:
public function getDefaultConnection()
{
return $this->app['config']['database.default'];
}
此问题出现在 Windows 10 箱 运行 ampps 上,但在 运行 通过 homestead 时不是问题。
编辑:
我可以确认它是 database.php
文件中的 'default' => env('DB_CONNECTION', 'permissions'),
行,因为当它被更改为 'default' => 'permissions'
时,应用程序按预期运行。
请运行执行以下命令。
清除缓存 -
php artisan cache:clear
清除配置缓存
php artisan config:clear
然后 重新启动您的 laravel 服务器。现在应该可以使用了。
我在 Laravel 中遇到一个奇怪的问题,它正在寻找连接 mysql
而没有名为 mysql
的连接。在我的 database.php
配置中,我将默认连接设置为:
'default' => env('DB_CONNECTION', 'permissions'),
在我的 .env
文件中,我有一行:
DB_CONNECTION=permissions
这是堆栈跟踪:
local.ERROR: InvalidArgumentException: Database [mysql] not configured. in D:\Development\Permissions\vendor\laravel\framework\src\Illuminate\Database\DatabaseManager.php:239
Stack trace:
#0 D:\Development\Permissions\vendor\laravel\framework\src\Illuminate\Database\DatabaseManager.php(158): Illuminate\Database\DatabaseManager->getConfig('mysql')
#1 D:\Development\Permissions\vendor\laravel\framework\src\Illuminate\Database\DatabaseManager.php(68): Illuminate\Database\DatabaseManager->makeConnection('mysql')
#2 D:\Development\Permissions\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Model.php(3348): Illuminate\Database\DatabaseManager->connection('mysql')
#3 D:\Development\Permissions\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Model.php(3314): Illuminate\Database\Eloquent\Model::resolveConnection(NULL)
我将问题追溯到对 vendor\laravel\framework\src\Illuminate\Database\DatabaseManager->getDefaultConnection()
的调用。由于某些原因,即使默认连接设置为 permissions
,returns 的连接名称也是 mysql
。以下是供参考的功能:
public function getDefaultConnection()
{
return $this->app['config']['database.default'];
}
此问题出现在 Windows 10 箱 运行 ampps 上,但在 运行 通过 homestead 时不是问题。
编辑:
我可以确认它是 database.php
文件中的 'default' => env('DB_CONNECTION', 'permissions'),
行,因为当它被更改为 'default' => 'permissions'
时,应用程序按预期运行。
请运行执行以下命令。
清除缓存 -
php artisan cache:clear
清除配置缓存
php artisan config:clear
然后 重新启动您的 laravel 服务器。现在应该可以使用了。