閱讀屋>資料庫作業系統> 怎樣實現yii2資料庫讀寫分離配置

怎樣實現yii2資料庫讀寫分離配置

怎樣實現yii2資料庫讀寫分離配置

  開始使用資料庫首先需要配置資料庫連線元件,透過新增 db 元件到應用配置實現("基礎的" Web 應用是 config/web.PHP),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

【怎樣實現yii2資料庫讀寫分離配置】相關文章: