2016-07-27 19 views
1

私はjearengers mongodbとlaravel以外のLaravelの照度データベースライブラリを使用しています。照合mysqlルータとのデータベース接続

私の要件は、照明データベースによる複数のデータベース接続です。

現在、私はmysqlとmongodbの2つの接続を追加しました。

データベースの負荷を分割するには、mysql db serverの代わりにmysql routerに直接接続する必要があります。また、私は読み取り操作と読み取り/書き込み操作のために1つだけを必要とします。

親切に私にこれを助けてください。

ありがとうございます。

現在の接続

$db = new Capsule; 

$db->addConnection([ 
    'driver' => 'mysql', 
    'host'  => '127.0.0.1', 
    'database' => 'test', 
    'username' => 'test', 
    'password' => '[email protected]#', 
    'charset' => 'utf8', 
    'collation' => 'utf8_unicode_ci', 
    'prefix' => '', 
], "default"); 

$db->addConnection([ 
    'driver' => 'mongodb', 
    'host'  => '127.0.0.1', 
    'port'  => 27017, 
    'database' => 'test', 
    'username' => null, 
    'password' => null, 
    'options' => [] 
], "mongodb"); 

$db->getDatabaseManager()->extend('mongodb', function ($config) { 
    return new Connection($config); 
}); 

$db->setEventDispatcher(new Dispatcher(new Container)); 
$db->setAsGlobal(); 
$db->bootEloquent(); 

私は、MySQLのルータを介してリードとリード/ライト動作のための2つのMySQL接続で1つのmysqlの接続を交換する必要があります。

答えて

1

あなたは読み取りを定義することができます/ mysqlのホストまたはMySQLのルータのホストとポートのいずれかで個別に

$db->addConnection([ 
    'driver' => 'mysql', 
    'read'  => [ 
     'host'  => '<mysql_router_host_ip>', 
     'port'  => '<mysql_router_host_port>' 
    ], 
    'write'  => [ 
     'host'  => '<mysql_router_host_ip>', 
     'port'  => '<mysql_router_host_port>' 
    ], 
    'database' => '<mysql_database>', 
    'username' => '<mysql_database_user>', 
    'password' => '<mysql_database_password>', 
    'charset' => 'utf8', 
    'collation' => 'utf8_unicode_ci', 
    'prefix' => '', 
], "mysql"); 
オプションを書きます
関連する問題