基于ThinkPHP5.1.15+MySQL演示主从同步配置与读写分离解决方案。
软件环境: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操作,验证一下数据。
我在后台系统设置中更新一下网站信息
根据日志可以看得出,已经实现了主从服务器以及读写分离