1、配置主服务器
设定主从服务器:一定是主服务器版本低于或者相同于从服务器。最佳的情况是主从服务器的版本一致。
1)开启二进制日志:
找到配置文件:my.ini
2)设置集群的唯一id:
打开它:

3)创建从服务器登录主服务器的授权账户:
权限:replication slave

查看账户:

4)主服务器的防火墙:
关闭防火墙
重启mysql服务器:

2、配置从服务器
1)设置集群的唯一id:
打开配置文件:

查看内容:

修改之后:

2)连接主服务器设置:
需要主服务器提供如下信息:
change master to
master_host=’192.168.142.52’
master_port=3306
master_user=’slave’
master_password=’123456’
master_log_file=’log-bin.000001’
master_log_pos=’107’

master_log_file :这个的值是主服务器的二进制文件的文件名

master_log_pos :这个值是主服务器的二进制文件最新的位置

重点说明:开始进行主服务器与从服务器的数据同步!把所有的主服务器的内容都复制到从服务器上面。

装假操作完成!
开始配置:

3、从服务器管理
查看从服务器状态:

show salve status\G

启动从服务器:

start slave

停止从服务器:

stop slave

清空从服务器配置:

reset slave all

1)查看状态:

2)启动从服务器:

start slave


开始从服务器之前,一定一定一定要把数据从主服务器上面同步过来。不然写SQL的时候,一定要报错的。

3)查看状态:

4)主服务器上面操作SQL语句:
查看了主服务器,也查看从服务器。
说明,主从同步的时候,之前的数据是不会同步过来的。因为我们写的二进制日志文件的开始位置是最新的。

从服务器去读的就是配置的主服务器文件的开始位置!

创建一张表:

查看:

5)从服务器查看数据同步情况:

从服务器接收到了主服务器的数据

6)主服务器上面操作:
查看位置:

从服务器,其实就是把这条sql语句读过去,执行了!

写入点数据:

从服务器就有数据了

8)查看主服务器:
查看状态:

9)从服务器:
停止从服务:

stop slave


查看状态:

10)主服务器:

11)从服务器:

从服务器,数据已经停止了,所有没有同步过来!
开始从服务:

查看状态:

每一次从服务器去主服务器读取数据,都会记录,读到的最新位置。下一次再去读取的时候,就是从这个记录的位置,开始向下读取。

12)停止从服务器,清空从服务器

清空:

reset slave all


查看状态:

4、读写分离的配置
PHP代码层面实现:

主服务器:192.168.142.52;
从服务器:192.168.142.38;

$db1 = mysqli_connect(); 主服务器
$db2 = mysqli_connect(); 从服务器

$sql = “select” 这条sql是你写的。你知道它是查询,请使用$db2操作
mysqli_query($db2, $sql);

$sql = “insert” 这条sql是你写的。你知道它是写的,请使用$db1操作
mysqli_query($db1, $sql);

5、ThinkPHP框架中的读写分离配置


发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注