怎樣實現yii2數據庫讀寫分離配置
開始使用數據庫首先需要配置數據庫連接組件,通過添加 db 組件到應用配置實現("基礎的." Web 應用是 config/),DSN( Data Source Name )是數據源名稱,用於指定數據庫信息.如下所示:
return [
// ...
components => [
// ...
db => [
class => yiidbConnection,
dsn => mysql:host=localhost;dbname=mydatabase, // MySQL, MariaDB
//dsn => sqlite:/path/to/database/file, // SQLite
//dsn => pgsql:host=localhost;port=5432;dbname=mydatabase, // PostgreSQL
//dsn => cubrid:dbname=demodb;host=localhost;port=33000, // CUBRID
//dsn => sqlsrv:Server=localhost;Database=mydatabase, // MS SQL Server, sqlsrv driver
//dsn => dblib:host=localhost;dbname=mydatabase, // MS SQL Server, dblib driver
//dsn => mssql:host=localhost;dbname=mydatabase, // MS SQL Server, mssql driver
//dsn => oci:dbname=//localhost:1521/mydatabase, // Oracle
username => root, //數據庫用戶名
password => , //數據庫密碼
charset => utf8,
],
],
// ...
];
請參考PHP manual獲取更多有關 DSN 格式信息。 配置連接組件後可以使用以下語法訪問:
$connection = Yii::$app->db;
請參考[[yiidbConnection]]獲取可配置的屬性列表。 如果你想通過ODBC連接數據庫,則需要配置[[yiidbConnection::driverName]] 屬性,例如:
db => [
class => yiidbConnection,
driverName => mysql,
dsn => odbc:Driver={MySQL};Server=localhost;Database=test,
username => root,
password => ,
],
注意:如果需要同時使用多個數據庫可以定義 多個 連接組件:
return [
// ...
components => [
// ...
db => [
class => yiidbConnection,
dsn => mysql:host=localhost;dbname=mydatabase,
username => root,
password => ,
charset => utf8,
],
secondDb => [
class => yiidbConnection,
dsn => sqlite:/path/to/database/file,
],
],
// ...
];
在代碼中通過以下方式使用:
$primaryConnection = Yii::$app->db;
$secondaryConnection = Yii::$app->secondDb;
如果不想定義數據庫連接爲全局應用組件,可以在代碼中直接初始化使用:
$connection = new yiidbConnection([
dsn => $dsn,
username => $username,
password => $pa
-
惠普重裝系統步驟圖解
國內的惠普用戶越來越多,所以關於惠普電腦重裝系統的問題也越來越多,下面是小編爲大家整理的惠普重裝系統步驟圖解,歡迎參考~設置開機u盤啓動:hp電腦有個特殊的'功能就是,按Esc鍵,就會出現startupmenu(啓動菜單)如圖:每個鍵的功能都有其說明。惠普重裝系統步驟圖解一...
-
2017年計算機三級數據庫技術考試試題及答案
想要取得好的考試成績,離不開平時的刻苦刷題。下面小編爲大家整理了2017年計算機三級數據庫技術考試試題及答案,希望能幫到大家!1).如果一個併發調度的結果與某一串行調度執行結果等價,則這個併發調度稱爲是()A.串行調度B.可串行化的調度C.併發執行的可串行化執行D...
-
高中體液免疫系統圖解
高中學生已經學習過神經調節和體液調節的知識,對於人體和動物體的穩態調節有一定的認識;免疫與艾滋病的預防是生活中的常見話題,與學生生活貼近。下面是高中體液免疫系統圖解,爲大家提供參考。1.免疫系統的組成教師將預防針與免疫調節聯繫起來,以乙肝疫苗爲例,同時pp...
-
如何優化MongoDB以及其它數據庫?
我們知道做數據庫最重要的還是做好優化,那麼優化這兩個看似簡單,但是要怎麼做纔好呢?下面小編就爲大家分享下優化MongoDB以及其它數據庫的方法吧。JaredRosoff在ScaleOutCamp發表了一篇簡潔、有效、有趣和令人信服的《8分鐘MongoDB教程》描述瞭如何進行MongoDB優...