您好,登錄后才能下訂單哦!
利用Yii2怎么配置一個主從數據庫?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
前言
MySQL主從同步是目前使用比較廣泛的數據庫架構,技術比較成熟,配置也不復雜,特別是對于負載比較大的網站,主從同步能夠有效緩解數據庫讀寫的壓力。以前在使用yii1的時候,主從數據庫的支持沒有那么方便,只能寫上多個DB的components,然后在AR的getDB中返回相應的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 ];
關于利用Yii2怎么配置一個主從數據庫問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。