怎样实现yii2数据库读写分离配置

时间:2022-06-27 22:13:39 数据库操作系统 我要投稿
  • 相关推荐

怎样实现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数据库读写分离配置】相关文章:

怎样实现演讲的预期效果07-02

数据库课程网站的设计与实现开题报告07-01

腾讯的国际足球数据库是如何实现的?07-13

股市投资怎样实现复利增长?07-02

企业怎样实现高效绩效考核07-03

怎样在web实现漂亮的动态图表?07-03

微相框的微信功能是怎样实现的?07-09

怎样实现课堂中的师生角色转换07-03

QQ传文件的秒传功能怎样实现?07-10

怎样才能实现个人职业发展规划?07-13