Yii2的主从数据库如何设置?

来源:互联网 发布:mysql group by 索引 编辑:程序博客网 时间:2024/05/22 10:42

本文和大家分享的主要是php中yii框架主从数据库的设置相关知识,希望可以帮助大家更好的使用这个框架,一起来看看吧。

  在yii1的时候,主从数据库的支持没有那么方便,只能写上多个DBcomponents,然后在ARgetDB中返回相应的db。这样也可以用来对付主从数据库

  Yii2则已经解决这个问题,直接在代码中进行处理即可:

  PHP代码

  'db' =>[

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

  // 配置主服务器

  'dsn' => 'dsn for master server',

  'username' => 'master',

  'password' => '',

  'charset' => 'utf8',

  'tablePrefix' => 'php_',//默认为空

  // 配置从服务器

  'slaveConfig' => [

  'username' => 'slave',

  'password' => '',

  'charset' => 'utf8',

  'tablePrefix' => 'php_',

  'attributes' => [

  // use a smaller connection timeout

  PDO::ATTR_TIMEOUT => 10,

  ],

  ],

  ];

  是不是感觉超级方便,而不止是这样,你还可以配置从服务器组:

  PHP代码

  'db'=>[

  //...上面是一些标准配置

  'slaves' => [

  ['dsn' => 'dsn for slave server 1'],

  ['dsn' => 'dsn for slave server 2'],

  ['dsn' => 'dsn for slave server 3'],

  ['dsn' => 'dsn for slave server 4'],

  ],

  ]

  更值得称赞的是,主服务器也是多个主服务器的配置就是下面这样,其中字符编码集,表前缀等设置参考上面的。

  PHP代码

  'db'=>[

  // 配置主服务器

  'masterConfig' => [

  'username' => 'master',

  'password' => '',

  'attributes' => [

  // use a smaller connection timeout

  PDO::ATTR_TIMEOUT => 10,

  ],

  ],

  // 配置主服务器组

  'masters' => [

  ['dsn' => 'dsn for master server 1'],

  ['dsn' => 'dsn for master server 2'],

  ],

  //other ...slaves

  ];

  果然 是轻轻松松啊。

  当然 如果你想更轻松的使用,这些,其实就是得用YII2AR。你就用不着改代码了。。

 

来源:膘叔

0 0