Laravel 数据库:连接多个 MySQL 数据库
在 Laravel 中连接多个 MySQL 数据库,你需要在 config/database.php
配置文件中设置每个连接的详细信息。以下是一个示例配置,连接两个不同的数据库:
return [
// ...
'connections' => [
'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,
],
'mysql2' => [
'driver' => 'mysql',
'host' => env('DB_HOST_SECONDARY', '127.0.0.1'),
'port' => env('DB_PORT_SECONDARY', '3306'),
'database' => env('DB_DATABASE_SECONDARY', 'forge'),
'username' => env('DB_USERNAME_SECONDARY', 'forge'),
'password' => env('DB_PASSWORD_SECONDARY', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],
// ...
],
// ...
];
在上面的配置中,我们定义了两个连接:mysql
和 mysql2
。每个连接都有自己的主机、端口、数据库名、用户名和密码。你可以通过 .env
文件来设置环境特定的配置值,以保护敏感信息的安全。
要在代码中使用这些连接,你可以使用 DB
facade 并指定连接名称:
$users = DB::connection('mysql')->table('users')->get();
$usersFromSecondary = DB::connection('mysql2')->table('users')->get();
这样,你就可以根据需要连接到不同的数据库了。
评论已关闭