基于ThinkPHP5.1.15+MySQL演示主从同步配置与读写分离解决方案。

软件环境:ThinkPHP5.1.15+MariaDB 10.1.30(主服务器)+MySQL5.7(从服务器)+Win10

两台服务器IP分别为:192.168.199.234、192.168.199.237,已经为两个数据库创建了相同账号密码的账户。

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

1123901fbda6a877d1d5cfbdfcf010d8.png

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

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

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

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

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

第五步,在从服务器上设置同步命令 1123901fbda6a877d1d5cfbdfcf010d8.png

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

第六步,启动slave进行

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

1123901fbda6a877d1d5cfbdfcf010d8.png

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

第七步,验证主从配置

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

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

1123901fbda6a877d1d5cfbdfcf010d8.png

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

1123901fbda6a877d1d5cfbdfcf010d8.png