Laravel 7/6 Multiple Database Connection Tutorial

By Hardik Savani | December 4, 2019 | Category : Laravel

Today, i would like to show you how to use multiple db connection in laravel 7/6 application. we will learn to use multi database connection laravel 7/6. you will find out way of implementing laravel 7/6 multiple database connection example.

I will give you step by step implementation of how to use laravel 6 multiple database connections using .env file. we will add configuration variable on .env file and use it to database configuration file. You can just follow me, i will also learn how to work with migration, model and database query for multiple database connection.

As we know sometime we need to use multiple database connection like mysql, mongodb etc. i can say when you work with large amount of project then you will need maybe. So let's follow bellow step.

Set ENV Variable:

Here, you need to set configuration variable on .env file. let's create as bellow:














Use ENV Variable:

Now, as we created variable in env file, we need to use that variable on config file so let's open database.php file and add new connections key as like bellow:



use Illuminate\Support\Str;

return [

'default' => env('DB_CONNECTION', 'mysql'),

'connections' => [


'mysql' => [

'driver' => 'mysql',

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

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

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

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

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

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

'unix_socket' => env('DB_SOCKET', ''),

'charset' => 'utf8mb4',

'collation' => 'utf8mb4_unicode_ci',

'prefix' => '',

'prefix_indexes' => true,

'strict' => true,

'engine' => null,

'options' => extension_loaded('pdo_mysql') ? array_filter([


]) : [],


'mysql2' => [

'driver' => env('DB_CONNECTION_SECOND'),

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

'port' => env('DB_PORT_SECOND', '3306'),

'database' => env('DB_DATABASE_SECOND', 'forge'),

'username' => env('DB_USERNAME_SECOND', 'forge'),

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

'unix_socket' => '',

'charset' => 'utf8mb4',

'collation' => 'utf8mb4_unicode_ci',

'prefix' => '',

'prefix_indexes' => true,

'strict' => true,

'engine' => null,



Use Database Multiple Connection:

Here, i will give you simple example of how you can use as multiple connection:

Use with migration



public function up()


Schema::connection('mysql2')->create('blog', function (Blueprint $table) {








Use with model


namespace App;

use Illuminate\Database\Eloquent\Model;

class Blog extends Model


protected $connection = 'mysql2';


Use with Controller


class BlogController extends BaseController


public function getRecord()


$blogModel = new Blog;


$find = $blogModel->find(1);

return $find;



Use with Query Builder

$blogs = DB::table("blog")->get();


$blogs = DB::connection('mysql2')->table("blog")->get();


I hope it can help you...

Hardik Savani
My name is Hardik Savani. I'm a full-stack developer, entrepreneur and owner of Aatman Infotech. I live in India and I love to write tutorials and tips that can help to other artisan. I am a big fan of PHP, Javascript, JQuery, Laravel, Codeigniter, VueJS, AngularJS and Bootstrap from the early stage.
Follow Me: Github Twitter
***Do you want me hire for your Project Work? Then Contact US.

We are Recommending you: