我正在使用带有jessengers mongodb的Laravel外部的laraver的illumination数据库库。
我的要求是通过照明数据库连接多个数据库。
目前,我已经添加了两个连接——一个是mysql,一个是mongodb。
为了划分数据库负载,我需要连接到mysql路由器,而不是直接连接到mysql-db服务器。此外,我只想要一个用于读取操作,一个用于读/写操作。
请帮我解决这个问题。
提前谢谢。
当前连接
$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连接进行读取和读/写操作。
您可以使用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");