您好,登錄后才能下訂單哦!
這篇文章主要介紹php中Yii2.0如何實現數據庫讀寫分離,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
打開我們的數據庫配置文件common\config\main-local.php在db屬性中做如下配置
一個主數據庫,多個從庫
$db_config = [ 'class' => 'yii\db\Connection', 'dsn' => env('DB_DSN', 'mysql:host=xxx;port=3306;dbname=xl-pp'), 'username' => env('DB_USER', 'xx'), 'password' => env('DB_PASS', 'xxx!'), 'charset' => 'utf8', 'tablePrefix' => env('DB_PREFIX', 'xcxmall_'), //配置從服務器 'slaveConfig' => [ 'username' => env('DB_SLAVE_USER',env("DB_USER")), 'password' => env('DB_SLAE_PASS',env("DB_PASS")), 'attributes' => [ PDO::ATTR_TIMEOUT => 10, ], 'charset' => 'utf8', 'tablePrefix' => env('DB_PREFIX', 'xcxmall_'), ], // 配置從服務器組,配置多個從庫需要一個dns即可,多個從庫的登錄用戶名和密碼必須是一樣的, //一個從庫掛了,會自動鏈接第二個從庫 'slaves' => [ ['dsn' => env('DB_SLAVE_DSN', env("DB_DSN"))], ['dsn1' => env('DB_SLAVE_DSN', env("DB_DSN"))] ], ];
如上配置就能實現yii2數據庫讀寫分離的操作,很簡單,只要一個配置就ok了,讀寫分離的功能由后臺代碼自動完成.調用者無須關心。
下面是配置多個主數據庫,
// 配置主服務器 'masterConfig' => [ 'username' => 'master', 'password' => '', 'attributes' => [ PDO::ATTR_TIMEOUT => 10, ], 'charset' => 'utf8', 'tablePrefix' => env('DB_PREFIX', 'xcxmall_'), ], // 配置主服務器組 'masters' => [ ['dsn' => 'dsn for master server 1'], ['dsn' => 'dsn for master server 2'], ],
以上是“php中Yii2.0如何實現數據庫讀寫分離”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。