📅  最后修改于: 2023-12-03 15:38:19.253000             🧑  作者: Mango
在 Laravel 中,我们可以非常方便地创建多个不同的数据库连接。这对于一些需要多个数据库的应用程序来说是非常有用的,比如说跨数据库的数据查询和分析。
要创建两个数据库连接,我们只需要按照以下步骤即可:
首先,我们需要在 .env
文件中添加我们的第二个数据库的配置。我们可以将其命名为 DB_CONNECTION_2
,并为其提供相应的数据库名称、用户名和密码。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=database1
DB_USERNAME=root
DB_PASSWORD=
DB_CONNECTION_2=mysql
DB_HOST_2=127.0.0.1
DB_PORT_2=3306
DB_DATABASE_2=database2
DB_USERNAME_2=root
DB_PASSWORD_2=
接下来,我们需要在 config/database.php
文件中添加我们的第二个数据库连接配置。我们可以将其命名为 second_db
,并设置它的连接类型、主机、端口、数据库名称、用户名和密码。
'connections' => [
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'default_db'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => env('DB_CHARSET', 'utf8mb4'),
'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'),
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
'second_db' => [
'driver' => 'mysql',
'host' => env('DB_HOST_2', '127.0.0.1'),
'port' => env('DB_PORT_2', '3306'),
'database' => env('DB_DATABASE_2', 'second_db'),
'username' => env('DB_USERNAME_2', 'root'),
'password' => env('DB_PASSWORD_2', ''),
'unix_socket' => env('DB_SOCKET_2', ''),
'charset' => env('DB_CHARSET_2', 'utf8mb4'),
'collation' => env('DB_COLLATION_2', 'utf8mb4_unicode_ci'),
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
],
最后,在我们的应用程序中,我们可以通过以下方式使用我们的两个数据库连接:
$users1 = DB::connection('mysql')->table('users')->get();
$users2 = DB::connection('second_db')->table('users')->get();
通过这个简单的步骤,我们可以在 Laravel 应用程序中创建多个数据库连接,并在查询中使用它们。这使得在应用程序中实现跨数据库查询变得非常容易。