ThinkPHP实现读写分离.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ThinkPHP实现读写分离

ThinkPHP实现读写分离ThinkPHP提供了完善的读写分离功能,不需要手动切换数据库。什么时候读,什么时候写系统会自动判断。读数据时系统会操作从服务器,而写数据时系统会操作主服务器。最终由数据库实现同步,这就是一个最典型的数据库读写分离,下以将配置好的两台主从数据库为例,详细介绍实现读写分离。首先打开项目下的数据库配置文件,修改其中的数据库连接参数。要实现多数据库连接,只需要使用,分隔多台服务器即可,如以下代码所示。?php?return?array(?//配置项=配置值?URL_CASE?INSENSITIVE?=true,?DB_DEPLOY_TYPE=1,?//是否启用分布式?DB_RW_SEPARATE=true,?//是否启用智能读写分离?DB_TYPE?=?mysql,?//数据库类型?DB_HOST?=?,0,?//服务器地址?DB_NAME?=?tp,?//数据库名?DB_USER?=?root,root,?//用户名?DB_PWD?=?root?,?root,?//密码?DB_PREFIX?=?tpk_,?//数据库表前缀?project_name=项目名称,?TMPL_L_DELIM?=?!--{,?TMPL_R_DELIM?=?}--,?LAYOUT_ON=true,?);??复制代码配置文件配置好后,现在就可以在动作中测试读写分离了,如以下代码所示。?php?class?IndexAction?extends?Action?{?//查询?public?function?index(){?$articleObj=M(Article);?$rows=$articleObj-select();?dump($rows);?}?//写入?public?function?add()?{?$articleObj=M(Article);?$data[title]=读写分离测试i?$data[add_user]=ceiba;?$data[area]=shanghai;?$data[category]=?教育新闻;?$data[content]=读写分离测试---内容;?if?($articleObj-add($data))?{?$this-success(数据添加成功)?;?}else?{?$this-error(数据添加失败);?}?}?}??注意事项:1、当采用原生态的sql语句进行写入操作的时候,要用execute,读操作要用query。2、MySQL数据主从同步还是要靠MySQL的机制来实现,所以这个时候MySQL主从同步的延迟问题是需要优化,延迟时间太长不仅影响业务,还影响用户体验。windows环境下mysql数据库的主从同步备份步骤(单向同步)以下的文章主要讲述的是在windows环境下实现MySQL数据库的主从同步备份的正确操作方案,我在一些相关的网站看见关于windows环境下实现 MySQL数据库的主从同步备份的操作步骤描述,但是很少有对其成功操作到底的,所以拿出此篇较为完整的方案与大家一起分享。 以下配置在本机上已经成功: 实现功能:A为主服务器,B为从服务器,初始状态时,A和B中的数据信息相同,当A中的数据发生变化时,B也跟着发生相应的变化,使得A和B的数据信息同步,达到备份的目的。 环境: A、B的MySQL数据库版本同为4.1.20 A:操作系统:Windows 2003 serverIP地址: B:操作系统:Windows 2003 server 的IP地址: 配置过程: 1、在A的MySQL数据库中建立一个备份帐户,命令如下: 复制代码 代码如下:GRANT REPLICATION SLAVE,RELOAD,SUPER ON *.* TO backup@ IDENTIFIED BY 1234; 建立一个帐户backup,并且只能允许从这个地址上来登陆,密码是1234。 2、因为mysql版本新密码算法不同,所以进入mysql下,输入:set password for backup@=old_password(1234); 3、关停A服务器,将A中的数据拷贝到B服务器中,使得A和B中的数据同步,并且确保在全部设置操作结束前,禁止在A和B服务器中进行写操作,使得两数据库中的数据一定要相同! 4、对A服务器的配置进行修改,打开mysql/my.ini文件,在[mysqld]下面添加如下内容: server-id=10 log-bin=c:\log-bin.log server-id:为主服务器A的ID值 log-bin:二进制变更日值5、重启A服务器,从现在起,它将把客户堆有关数据库的修改记载到二进制变更日志里去。 6、 关停B服务器,对B服务器锦熙配置,以便让它知道自己的镜像ID、到哪里

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档