手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜Qcloud , 注册 | 登陆

Yii2的主从数据库设置

首页 > PHP Framework >

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

Yii2则已经解决这个问题,直接在代码中进行处理即可:
PHP代码
  1. 'db' =>[  
  2.      'class' => 'yii\db\Connection',  
  3.   
  4.     // 配置主服务器  
  5.     'dsn' => 'dsn for master server',  
  6.     'username' => 'master',  
  7.     'password' => '',  
  8.     'charset' => 'utf8',  
  9.     'tablePrefix' => 'php_',//默认为空  
  10.   
  11.     // 配置从服务器  
  12.     'slaveConfig' => [  
  13.         'username' => 'slave',  
  14.         'password' => '',  
  15.         'charset' => 'utf8',  
  16.       'tablePrefix' => 'php_',  
  17.         'attributes' => [  
  18.             // use a smaller connection timeout  
  19.             PDO::ATTR_TIMEOUT => 10,  
  20.         ],  
  21.       
  22.     ],  
  23. ];  
是不是感觉超级方便,而不止是这样,你还可以配置从服务器组:
PHP代码
  1. 'db'=>[  
  2.    //...上面是一些标准配置  
  3.     'slaves' => [  
  4.         ['dsn' => 'dsn for slave server 1'],  
  5.         ['dsn' => 'dsn for slave server 2'],  
  6.         ['dsn' => 'dsn for slave server 3'],  
  7.         ['dsn' => 'dsn for slave server 4'],  
  8.     ],   
  9. ]  
更值得称赞的是,主服务器也是多个主服务器的配置就是下面这样,其中字符编码集,表前缀等设置参考上面的。
PHP代码
  1. 'db'=>[  
  2.     // 配置主服务器  
  3.     'masterConfig' => [  
  4.         'username' => 'master',  
  5.         'password' => '',  
  6.         'attributes' => [  
  7.             // use a smaller connection timeout  
  8.             PDO::ATTR_TIMEOUT => 10,  
  9.         ],  
  10.     ],  
  11.   
  12.     // 配置主服务器组  
  13.     'masters' => [  
  14.         ['dsn' => 'dsn for master server 1'],  
  15.         ['dsn' => 'dsn for master server 2'],  
  16.     ],  
  17.     //other ...slaves  
  18. ];  
果然 是轻轻松松啊。
当然 如果你想更轻松的使用,这些,其实就是得用YII2的AR。你就用不着改代码了。。
 
 



本站采用创作共享版权协议, 要求署名、非商业和保持一致. 本站欢迎任何非商业应用的转载, 但须注明出自"膘叔", 保留原始链接, 此外还必须标注原文标题和链接.

Tags: yii2

« 上一篇 | 下一篇 »

只显示10条记录相关文章

发表评论

评论内容 (必填):