简体   繁体   English

通过mysql路由器阐明数据库连接

[英]Illuminate Database connectivity with mysql router

I'm using Laravel's illuminate database library outside laravel with jessengers mongodb. 我正在使用jessengers mongodb在laravel外部使用Laravel的照明数据库库。

My requirement is multiple database connectivity through illuminate database. 我的要求是通过照明数据库实现多个数据库连接。

Currently, I've added two connection one mysql and one mongodb. 当前,我添加了两个连接:一个mysql和一个mongodb。

To split the database load, I need to connect to mysql router instead of mysql db server directly. 要拆分数据库负载,我需要直接连接到mysql路由器而不是mysql db服务器。 Also, in that I want one only for Read operation and one for Read/Write operation. 另外,我只希望其中之一用于读取操作,而另一则用于读取/写入操作。

Kindly help me out on this. 请帮助我。

Thanks in advance. 提前致谢。

Current connections 当前连接

$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();

I need to replace one mysql connection with two mysql connection for Read and Read/Write operation through mysql router. 我需要用两个mysql连接替换一个mysql连接,以便通过mysql路由器进行读和读/写操作。

You can define read/write options separately with either mysql host or mysql router host and port 您可以使用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");

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM