我正在使用laravel的照明数据库库,在laravel外使用jessengers mongodb。
我的要求是通过照明数据库连接多个数据库。
目前,我已经添加了两个连接--一个mysql和一个mongodb。
为了分割数据库负载,我需要连接到mysql路由器,而不是直接连接mysql服务器。另外,我只想要一个用于读操作,一个用于读/写操作。
请帮我解决这个问题。
提前谢谢。
电流连接
$db = new Capsule;
$db->addConnection([
'driver' => 'mysql',
'host' => '127.0.0.1',
'database' => 'test',
'username' => 'test',
'password' => 'test@123#',
'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路由器进行读和读/写操作。
发布于 2016-11-06 09:52:44
您可以使用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");https://stackoverflow.com/questions/38615122
复制相似问题