如何使Mysqlnd_ms在不同的实例上运行每个查询

时间:2018-09-03 13:20:29

标签: php mysqli mysqlnd

我有一个带1个只读副本的AWS RDS(总共2个实例)。我打算安装mysqlnd_ms插件,以便可以将请求以循环方式指向数据库服务器。

我有2个基本问题,我在文档中找不到直接答案

  1. 使用mysqlnd_ms可以说,并非所有选择查询都应指向从属(只读副本)。每个请求都应该指向现有实例
  2. 假设如果每个请求运行2个查询,那么每个查询是否指向1个实例?这意味着它将为每个请求打开2个数据库连接?我正确理解了吗

1 个答案:

答案 0 :(得分:1)

创建一个json文件并在其中提及路径

  

/etc/php.d/mysqlnd_ms.ini

文件如下

mysqlnd_ms.config_file=/etc/mysqlnd_ms_cfg.json

在json文件中添加以下代码

  

/etc/mysqlnd_ms_cfg.json

    {

        "myapp": {
            "master": {
                "master_0": {
                    "host": "RDS master instance IP/doamin name",
                    "port": 3306
                }
            },
            "slave": {
                "slave_0": {
                    "host": "RDS master instance IP/doamin name",
                    "port": 3306
                },
                "slave_1": {
                    "host": "RDS read replica instance IP/doamin name",
                    "port": 3306
                }
            },
            "filters": [
                "roundrobin"
            ]
        }
    }