2016-07-27 51 views
1

我使用Laravel的照明数据库库与laravel之外的人员mongodb。使用mysql路由器照亮数据库连接

我的要求是通过照明数据库的多个数据库连接。

目前,我已经添加了两个连接一个mysql和一个mongodb。

要拆分数据库负载,我需要直接连接到mysql路由器而不是mysql db服务器。另外,我希望只有一个用于读取操作,一个用于读取/写入操作。

请帮助我解决这个问题。

在此先感谢。

当前连接

$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的路由器进行读取和读/写操作两个MySQL连接一个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"); 
选项分开来写