Laravel支持多数据库连接配置,可在config/database.php中添加多个连接如mysql_second,并在.env文件设置对应环境变量;通过模型中定义$connection属性指定数据库,或使用DB::connection()动态切换连接;迁移和Seeder时可通过--database参数或DB::connection指定目标数据库,确保操作正确执行。

Laravel 支持轻松配置和使用多个数据库连接,适用于需要操作不同数据库(如 MySQL、PostgreSQL、SQLite 等)或跨库读写数据的场景。你可以在一个项目中同时连接多个数据库,并在模型或查询中灵活切换。
配置多数据库连接
Laravel 的数据库配置文件位于 config/database.php。默认情况下,Laravel 使用 mysql 作为默认连接,你可以在此文件中添加新的连接。
例如,添加第二个 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', ''),
// ...
],
'mysql_second' => [
'driver' => 'mysql',
'host' => env('DB_SECOND_HOST', '127.0.0.1'),
'port' => env('DB_SECOND_PORT', '3306'),
'database' => env('DB_SECOND_DATABASE', 'second_db'),
'username' => env('DB_SECOND_USERNAME', 'second_user'),
'password' => env('DB_SECOND_PASSWORD', ''),
'charset' => 'utf8mb4',
'collation' => 'utf8mb4_unicode_ci',
'prefix' => '',
],
登录后复制
然后在 .env 文件中添加对应的环境变量:
DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=main_db DB_USERNAME=root DB_PASSWORD=secret DB_SECOND_HOST=127.0.0.1 DB_SECOND_PORT=3306 DB_SECOND_DATABASE=other_db DB_SECOND_USERNAME=other_user DB_SECOND_PASSWORD=other_secret
登录后复制
在模型中使用指定数据库连接
创建 Eloquent 模型时,通过设置 $connection 属性来指定使用哪个数据库连接:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Order extends Model
{
protected $connection = 'mysql_second'; // 使用第二个数据库
protected $table = 'orders';
}
登录后复制
这样所有对 Order 模型的操作都会自动使用 mysql_second 连接。
在查询构造器中动态切换连接
使用 DB::connection() 可以在运行时选择特定的数据库连接:
标签: mysql php word laravel go cad app ai 环境变量 配置文件
还木有评论哦,快来抢沙发吧~