zoukankan      html  css  js  c++  java
  • Yii2的主从数据库设置

    项目做大了,数据库主从还是不可少的。使用Yii框架开发,如何设置数据库的主从呢?其实很简单。

    先说一个主数据库服务器和多个从数据库服务器的情况,修改配置文件 config/db.php ,其中 slaveConfig 里的为从服务器的公共部分,也可以设置到 slaves 里的各个从服务器的配置里。

    'class' => 'yiidbConnection',
    
        // 配置主服务器
        '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,
            ],
        
        ],
    
        // 配置从服务器组
        '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'],
        ],

    还可以主服务器也是多个的那主服务器的配置就是下面的样子,其中字符编码集,表前缀等设置参考上面的。

     // 配置主服务器
        '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'],
        ],

    配置好了,那么如何使用呢,Yii这点做的特别好,因为你几乎不用修改你的代码,不用考虑你代码里的数据库操作如何使用主服务器配置还是从数据库配置,框架本身已经实现了。默认系统里 execut()函数操作的是主库,其他情况都操作从库,比如queryAll()。而且对于AR操作也是如此,因为他就是基于Yii::$app->db来实现的。

    更多详细的可以参考官方文档 http://www.yiichina.com/doc/guide/2.0/db-dao

  • 相关阅读:
    uniapp IOS使用uni.getLocation获取不到具体城市名字
    uniapp 打开[ios/安卓]GPS定位权限
    for循环中利用计时器使用let和var
    uniapp 调起底部输入框textarea聊天页面被键盘顶起
    父子组件传布尔类型,发现有问题一直传字符串
    Kafka学习-基础知识
    剑指offer-删除链表中重复的节点
    LEACH协议原文详解
    主流机器学习框架
    算法工程师-职位描述
  • 原文地址:https://www.cnblogs.com/wayne173/p/5382944.html
Copyright © 2011-2022 走看看