En .env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=database1
DB_USERNAME=root
DB_PASSWORD=secret
DB_CONNECTION_SECOND=mysql
DB_HOST_SECOND=127.0.0.1
DB_PORT_SECOND=3306
DB_DATABASE_SECOND=database2
DB_USERNAME_SECOND=root
DB_PASSWORD_SECOND=secret
En 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'),
],
'mysql2' => [
    'driver'    => env('DB_CONNECTION_SECOND'),
    'host'      => env('DB_HOST_SECOND'),
    'port'      => env('DB_PORT_SECOND'),
    'database'  => env('DB_DATABASE_SECOND'),
    'username'  => env('DB_USERNAME_SECOND'),
    'password'  => env('DB_PASSWORD_SECOND'),
],
  Nota: En mysql2caso de DB_username y DB_PASSWORD es el mismo, entonces usted puede utilizar env('DB_USERNAME')que se metioned en .envprimeras líneas.
Definir conexiones
  app/config/database.php
return array(
    'default' => 'mysql',
    'connections' => array(
        # Primary/Default database connection
        'mysql' => array(
            'driver'    => 'mysql',
            'host'      => '127.0.0.1',
            'database'  => 'database1',
            'username'  => 'root',
            'password'  => 'secret'
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
        ),
        # Secondary database connection
        'mysql2' => array(
            'driver'    => 'mysql',
            'host'      => '127.0.0.1',
            'database'  => 'database2',
            'username'  => 'root',
            'password'  => 'secret'
            'charset'   => 'utf8',
            'collation' => 'utf8_unicode_ci',
            'prefix'    => '',
        ),
    ),
);
Esquema
Para especificar qué conexión usar, simplemente ejecute el connection()método
Schema::connection('mysql2')->create('some_table', function($table)
{
    $table->increments('id'):
});
Consultor de construcción
$users = DB::connection('mysql2')->select(...);
Elocuente
Establezca la $connectionvariable en su modelo
class SomeModel extends Eloquent {
    protected $connection = 'mysql2';
}
También puede definir la conexión en tiempo de ejecución mediante el setConnectionmétodo o el onmétodo estático:
class SomeController extends BaseController {
    public function someMethod()
    {
        $someModel = new SomeModel;
        $someModel->setConnection('mysql2'); // non-static method
        $something = $someModel->find(1);
        $something = SomeModel::on('mysql2')->find(1); // static method
        return $something;
    }
}
  Nota ¡ Tenga cuidado al intentar construir relaciones con tablas en bases de datos! Es posible hacerlo, pero puede venir con algunas advertencias y depende de qué configuración de base de datos y / o base de datos tenga.
Usar múltiples conexiones de base de datos
Al usar varias conexiones, puede acceder a cada una a connectiontravés del método de conexión en la DBfachada. Lo que se namepasa al connectionmétodo debe corresponder a una de las conexiones enumeradas en su config/database.phparchivo de configuración:
$users = DB::connection('foo')->select(...);
También puede acceder a la instancia de PDO subyacente sin procesar utilizando el método getPdo en una instancia de conexión:
$pdo = DB::connection()->getPdo();
Enlaces útiles
- Laravel 5 conexión de base de datos múltiple DESDE laracasts.com
- Conecte múltiples bases de datos en laravel FROM tutsnare.com
- Múltiples conexiones de base de datos en Laravel FROM fideloper.com
 
                
class SomeModel extends Model {y también asegurarse de haber eliminado los valores de obtención del archivo env comoenv('DB_DATABASE', 'name')cuando crea una nueva matriz de configuración de DB en el archivo database.php como @sba ha mencionadoEn Laravel 5.1, especifica la conexión:
Por defecto, Laravel usa la conexión por defecto. Es simple, ¿no es así?
Lea más aquí: http://laravel.com/docs/5.1/database#accessing-connections
fuente
En realidad,
DB::connection('name')->select(..)no funciona para mí, porque 'nombre' tiene que estar entre comillas dobles: "nombre"Aún así, la consulta de selección se ejecuta en mi conexión predeterminada. Aún tratando de descubrir cómo convencer a Laravel para que funcione de la manera prevista: cambie la conexión.
Editar: lo descubrí. Después de depurar Laravels DatabaseManager resultó que mi database.php (archivo de configuración) (dentro de $ this-> app) estaba mal. En la sección "conexiones" tenía cosas como "base de datos" con valores de la copia. En términos claros, en lugar de
Necesitaba colocar algo como
dado que todas las conexiones se enumeraron con los mismos valores para la base de datos, nombre de usuario, contraseña, etc., lo que por supuesto tiene poco sentido si quiero acceder al menos a otro nombre de base de datos
Por lo tanto, cada vez que quería seleccionar algo de otra base de datos, siempre terminaba en mi base de datos predeterminada
fuente
Laravel tiene soporte incorporado para múltiples sistemas de bases de datos, debe proporcionar detalles de conexión en el archivo config / database.php
Una vez que tenga esto, puede crear dos clases de modelo base para cada conexión y definir el nombre de la conexión en esos modelos
Puede ampliar estos modelos para crear más modelos para tablas en cada DB.
fuente