gpt4 book ai didi

Laravel 辅助数据库连接不起作用

转载 作者:行者123 更新时间:2023-12-04 17:52:34 24 4
gpt4 key购买 nike

我在 config/database.php 中有一个 MySQL 数据库连接,如下所示,它工作正常。

'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],

我正在尝试定义另一个备用连接(用于测试目的),如下所示。 (相同的主机但不同的数据库):

'mysql_testing' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE_TEST', 'forge'),
'username' => env('DB_USERNAME_TEST', 'forge'),
'password' => env('DB_PASSWORD_TEST', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],

其中 DB_DATABASE_TESTDB_USERNAME_TESTDB_PASSWORD_TEST.env 中定义如下:

DB_DATABASE_TEST=db_other
DB_USERNAME_TEST=usr_other
DB_PASSWORD_TEST=secret

但是,第二个连接 起作用。在 Tinker 中,如果我尝试使用新连接:

DB::connection('mysql_testing')->getPdo()
InvalidArgumentException with message 'Database [mysql_testing] not configured.'

如果我尝试检查配置值,mysql 工作但新连接 mysql_testing 返回 null。

Config::get('database.connections.mysql')
[
"driver" => "mysql",
"host" => "127.0.0.1",
"port" => "3306",
"database" => "***",
"username" => "***",
"password" => "***",
"charset" => "utf8",
"collation" => "utf8_unicode_ci",
"prefix" => "",
"strict" => false,
"engine" => null,
]

Config::get('database.connections.mysql_testing')
null

知道如何调试这个问题吗?

最佳答案

这是因为 Laravel 5 会自动缓存配置值。因此,即使我们更改 config/database.php 的值,更改也不会生效,因为 Laravel 将继续从缓存中读取它。

有一种方法可以清除缓存。 但这不会清除配置缓存

php artisan cache:clear  

幸运的是,有一个不同的工匠命令。要清除您需要使用的配置缓存

php artisan config:clear  

关于Laravel 辅助数据库连接不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43414964/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com