已根据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']
],
],
即使从属服务器已启动且可访问,它也始终连接主数据库。
令人惊讶的是,用从属服务器替换了当前的主配置,而且,如果尝试从命令行连接从属数据库,它很快就会连接上,但无法通过上述配置实现。
想知道配置中是否缺少任何参数,或者是否想通过其他方式使事情如理想的读写拆分一样工作?
答案 0 :(得分:1)
问题
'class'=>'yii \ db \ Connection'