В одном проекте может потребоваться обращаться к 2 или более базам данных. Ниже опишу, как моно настроить подключение к нескольким базам данных на laravel.
Laravel несколько баз данных
01.02.2020
Первоначально в настройках Laravel нужно указать данные для соединения. Файл .env (в корне проекта):
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=db_laravel DB_USERNAME=laravel DB_PASSWORD=PASSWORD DB2_CONNECTION=mysql DB2_HOST=192.168.0.101 DB2_PORT=3306 DB2_DATABASE=db_laravel2 DB2_USERNAME=laravel2 DB2_PASSWORD=PASSWORD
Дальше в config/database.php (в старых версиях app/config/database.php) дать им имена:
'mysql' => [ 'driver' => env('DB_CONNECTION'), 'host' => env('DB_HOST'), 'port' => env('DB_PORT'), 'database' => env('DB_DATABASE'), 'username' => env('DB_USERNAME'), 'password' => env('DB_PASSWORD'), ], 'mysql_remote' => [ 'driver' => env('DB2_CONNECTION'), 'host' => env('DB2_HOST'), 'port' => env('DB2_PORT'), 'database' => env('DB2_DATABASE'), 'username' => env('DB2_USERNAME'), 'password' => env('DB2_PASSWORD'), ],
После этого можно указывать имя соединения (mysql_remote) в запросах, моделях и т.д.
$aTMP = DB::connection('mysql_remote')->select(...); Schema::connection('mysql_remote')->create('some_table', function($table) { $table->... });
Если имя соединения не будет указано, то запрос пойдет через первое объявленное в config/database.php.