Yii2读写拆分无法在主从配置中连接从服务器

时间:2019-03-08 08:14:31

标签: yii2

已根据Yii2官方文档完成了主从配置。下面是实际的配置,

'db' => [
        'class' => 'yii\db\Connection',
        'dsn' => 'mysql:host=1.1.1.1;dbname=master_db',
        'username' => 'user',
        'password' => 'password',
        'charset' => 'utf8',
        'enableSchemaCache' => true,
        'schemaCacheDuration' => 10,
        'schemaCache' => 'cache',
        'slaveConfig' => [
            'username' => 'slave_user',
            'password' => 'slave_password',
            'charset' => 'utf8',
            'attributes' => [
                // use a smaller connection timeout
                PDO::ATTR_TIMEOUT => 10,
            ],
            'enableSchemaCache' => true,
            'schemaCacheDuration' => 10,
            'schemaCache' => 'cache',
        ],
        'slaves' => [
            ['dsn' => 'mysql:host=2.2.2.2;dbname=slave_db']
        ],
    ],

即使从属服务器已启动且可访问,它也始终连接主数据库。

令人惊讶的是,用从属服务器替换了当前的主配置,而且,如果尝试从命令行连接从属数据库,它很快就会连接上,但无法通过上述配置实现。

想知道配置中是否缺少任何参数,或者是否想通过其他方式使事情如理想的读写拆分一样工作?

1 个答案:

答案 0 :(得分:1)

通过在slaveConfig中添加连接类解决了

问题

'class'=>'yii \ db \ Connection'