Yii2 数据库复制和读写分离
前言
许多数据库支持数据库复制来获得更好的数据库可用性,以及更快的服务器响应时间,减少数据库的压力。通过数据库复制功能,数据从所谓的主服务器被复制到从服务器。主服务器做增删改,而从服务器做查询。
读写分离前提条件:linux数据库主从同步配置
两个服务器的数据同步是读写分离的前提条件,但这不在yii2读写分离教程内,yii2的数据库读写分离配置,仅仅实现了在主库读写,在从库查询,那么我们首先要配置主从服务器的数据同步。详情查看linux数据库主从同步配置
附:配置同步成功,后因误操作或者其他原因导致的同步失效,如何排查问题? 查看:mysql数据主从同步失败解决方案
读写分离配置
linux主从服务器数据库同步完成之后,我们就可以开始yii2的读写分离配置,官方也有这方面的文档,但说的并不清楚,也没有实际的例子,我在这里加以完善。
1、打开我们的数据库配置文件common\config\main-local.php在db属性中做如下配置:
'db' => [ 'class' => 'yii\db\Connection', // 配置主服务器 'dsn' => 'mysql:host=192.168.0.1;dbname=hyii2', 'username' => 'root', 'password' => 'root', 'charset' => 'utf8', // 配置从服务器 'slaveConfig' => [ 'username' => 'root', 'password' => 'root', 'attributes' => [ // use a smaller connection timeout PDO::ATTR_TIMEOUT => 10, ], 'charset' => 'utf8', ], // 配置从服务器组 'slaves' => [ ['dsn' => 'mysql:host=192.168.0.2;dbname=hyii2'], ], ],
如上配置就能实现yii2数据库读写分离的操作,很简单,只要一个配置就ok了,读写分离的功能由后台代码自动完成,调用者无须关心。
上面只是一个一主一从的配置,如果要一主多从,或者多主多从,参考此例以及官方文档即可完成。 官方文档
相关推荐
sushuanglei 2020-11-12
projava 2020-11-14
URML 2020-11-11
xwb 2020-07-19
huolan 2020-06-25
Ida 2020-06-17
LeoHan 2020-06-13
@server=‘LinkServer‘, --链接服务器别名。@datasrc=‘192.168.1.1‘ --要访问的的数据库所在的服务器的ip. ‘******‘ --要访问的数据库,用户的密码
zhangwentaohh 2020-06-01
bluet00 2020-05-10
书弋江山 2020-04-19
wxthillwill 2020-04-09
fengdos 2020-04-08
步行者 2020-03-26
hxw0 2020-03-06
点滴技术生活 2020-02-22
86211943 2019-12-20
末点 2020-01-12
gaozhennan 2020-01-12