Sunday, May 31, 2026

Cara Membuat Multiple Koneksi 2 atau lebih database di Laravel (Multi Database Connection)

 1. setting di .env

#koneksi 1

DB_CONNECTION=sqlsrv

DB_HOST=IP Hostnya 1

DB_PORT=1433

DB_DATABASE=nama_database

DB_USERNAME=user_database

DB_PASSWORD=pass_database


#koneksi 2

DB2_CONNECTION=sqlsrv

DB2_HOST=IP Hostnya 2

DB2_PORT=1433

DB2_DATABASE=nama_database2

DB2_USERNAME=user_database2

DB2_PASSWORD=pass_database2


2. setting file config/database.php

*contoh setting SQL SERVER

'sqlsrv' => [

            'driver' => 'sqlsrv',

            'url' => env('DB_URL'),

            'host' => env('DB_HOST', 'localhost'),

            // 'port' => env('DB_PORT', '1433'),

            'database' => env('DB_DATABASE', 'laravel'),

            'username' => env('DB_USERNAME', 'root'),

            'password' => env('DB_PASSWORD', ''),

            'charset' => env('DB_CHARSET', 'utf8'),

            'prefix' => '',

            'prefix_indexes' => true,

            // 'encrypt' => env('DB_ENCRYPT', 'yes'),

            // 'trust_server_certificate' => env('DB_TRUST_SERVER_CERTIFICATE', 'false'),

        ],


        'sqlsrv2' => [

            'driver' => 'sqlsrv',

            'url' => env('DB2_URL'),

            'host' => env('DB2_HOST', 'localhost'),

            // 'port' => env('DB2_PORT', '1433'),

            'database' => env('DB2_DATABASE', 'laravel'),

            'username' => env('DB2_USERNAME', 'root'),

            'password' => env('DB2_PASSWORD', ''),

            'charset' => env('DB2_CHARSET', 'utf8'),

            'prefix' => '',

            'prefix_indexes' => true,

            // 'encrypt' => env('DB2_ENCRYPT', 'yes'),

            // 'trust_server_certificate' => env('DB2_TRUST_SERVER_CERTIFICATE', 'false'),

        ],


* contoh setting MySQL

 'mysql' => [

        'driver' => 'mysql',

        'host' => env('DB_HOST'),

        'port' => env('DB_PORT'),

        'database' => env('DB_DATABASE'),

        'username' => env('DB_USERNAME'),

        'password' => env('DB_PASSWORD'),

        'charset' => 'utf8mb4',

        'collation' => 'utf8mb4_unicode_ci',

    ],


    'mysql2' => [ // koneksi kedua

        'driver' => 'mysql',

        'host' => env('DB2_HOST'),

        'port' => env('DB2_PORT'),

        'database' => env('DB2_DATABASE'),

        'username' => env('DB2_USERNAME'),

        'password' => env('DB2_PASSWORD'),

        'charset' => 'utf8mb4',

        'collation' => 'utf8mb4_unicode_ci',

    ],


3. cara menggunakannya di MODEL

*user.php

class User extends Model

{

     // properti koneksi database

       protected $connection = 'mysql';

}


*produk.php

class Produk extends Model

{

      // properti koneksi database

        protected $connection = 'mysql2';

  

     // properti nama table

        protected $table = 'products';

}


4. cara menggunakannya

*select

$data = DB::connection('mysql2')->table('customers')->get();


*insert

DB::connection('mysql2')->table('logs')->insert([

    'message' => 'Tes koneksi database 2',

]);


*Raw Query

DB::connection('mysql2')->statement('DELETE FROM temp_data');