Yii2 數據庫複製和讀寫分離

前言

許多數據庫支持數據庫複製來得到更好的數據庫可用性,以及更快的服務器響應時間,減小數據庫的壓力。經過數據庫複製功能,數據從所謂的主服務器被複制到從服務器。主服務器作增刪改,而從服務器作查詢。php

讀寫分離前提條件:linux數據庫主從同步配置

兩個服務器的數據同步是讀寫分離的前提條件,但這不在yii2讀寫分離教程內,yii2的數據庫讀寫分離配置,僅僅實現了在主庫讀寫,在從庫查詢,那麼咱們首先要配置主從服務器的數據同步。詳情查看linux數據庫主從同步配置html

附:配置同步成功,後因誤操做或者其餘緣由致使的同步失效,如何排查問題? 查看:mysql數據主從同步失敗解決方案mysql

讀寫分離配置

linux主從服務器數據庫同步完成以後,咱們就能夠開始yii2的讀寫分離配置,官方也有這方面的文檔,但說的並不清楚,也沒有實際的例子,我在這裏加以完善。linux

一、打開咱們的數據庫配置文件common\config\main-local.php在db屬性中作以下配置:sql

'db' => [
    'class' => 'yii\db\Connection',
     
    // 配置主服務器
    'dsn' => 'mysql:host=192.168.0.1;dbname=hyii2',
    'username' => 'root',
    'password' => 'root',
    'charset' => 'utf8',
     
    // 配置從服務器
    'slaveConfig' => [
        'username' => 'root',
        'password' => 'root',
        'attributes' => [
            // use a smaller connection timeout
            PDO::ATTR_TIMEOUT => 10,
        ],
        'charset' => 'utf8',
    ],
     
    // 配置從服務器組
    'slaves' => [
            ['dsn' => 'mysql:host=192.168.0.2;dbname=hyii2'],
        ],
],

如上配置就能實現yii2數據庫讀寫分離的操做,很簡單,只要一個配置就ok了,讀寫分離的功能由後臺代碼自動完成,調用者無須關心。數據庫

上面只是一個一主一從的配置,若是要一主多從,或者多主多從,參考此例以及官方文檔便可完成。 官方文檔服務器

相關文章
相關標籤/搜索