首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

ThinkPHP5分布式与MySQL主从同步配置与读写分离解决方案

要实现ThinkPHP5分布式、MySQL主从同步配置与读写分离,需要先了解一下MySQL的主从同步机制。

MySQL主从同步的机制以及同步流程大致如下:

1、主服务器(master)将变更事件(更新、删除、表结构改变等等)写入二进制日志(master log)。

2、从服务器(slave)的IO线程从主服务器(binlog dump线程)获取二进制日志,并在本地保存一份自己的二进制日志(relay log)

3、从服务器的SQL线程读取本地日志(relay log),并重演变更事件。

本例中软件环境:ThinkPHP5.1.15+MariaDB 10.1.30(主服务器)+MySQL5.7(从服务器)+Win10,两台服务器IP分别为:192.168.199.234、192.168.199.237,已经为两个数据库创建了相同账号密码的账户。

首先我在TP项目的数据库配置文件中,设置了主从配置以及读写分离,配置代码如下:

第二步,修改主服务器的MySQL配置文件my.ini,主要代码如下:

第69行代码是启用二进制日志

第三步,通过show master status;查询主库状态,记录一下二进制日志文件和位置,在从服务器配置的时候要用。

第四步,修改从服务器数据库配置的server-id

默认情况下,server-id都是1,如果要设置主从必须要保存两台的server-id不同,因此只需改从服务器就可以,保存重启MySQL服务:

第五步,在从服务器上设置同步命令

其中,MASTER_LOG_FILE和MASTER_LOG_POS是第二步查询的结果。

第六步,启动slave进行

在从服务器上执行start slave;命令

然后执行show slave status命令,查看slave同步状态。如果Query OK,表示配置正确。

第七步,验证主从配置

在主库上执行一个update或者insert操作,验证一下数据。

我在后台系统设置中更新一下网站信息

根据日志可以看得出,已经实现了主从服务器以及读写分离

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180327A1X7PY00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券