读写分离介绍

 

一个主机master1用于处理所有写请求,它的从机slave1和另一台主机master2还有它的从机slave2负责所有读请求。 当master1主机宕机后,master2主机替代继续负责写请求。也就是master1、master互为备用机,其中一台坏了就另一台补上

 

 

读写分离准备

1、第一台服务器(192.168.127.138): 安装MySQL、MyCat。 作为MyCat中间件服务器

2、第二台服务器(192.168.127.145): 安装MySQL。作为M1,即主库1

3、第三台服务器(192.168.127.149): 安装MySQL。作为S1, 从库1

4、第四台服务器(192.168.127.150): 安装MySQL。作为M2,即主库2

5、第五台服务器(192.168.127.151): 安装MySQL。作为S2, 即从库2

 

 

读写分离搭建-配置第一个主库

 

主库配置(M1-192.168.127.138)

 

1、修改配置文件(/etc/my.cnf)

 

2、重启MySQL服务器

 

 

读写分离搭建-配置第二个主库

 

主库配置(M2-192.168.127.150)

 

1、修改配置文件(/etc/my.cnf)

 

2、重启MySQL服务器

 

 

读写分离搭建-分别在两台主库创建账户并授权

 

#创建itcast用户,并设置密码,该用户可在任意主机连接主机该MySQL服务

 

#为itcast用户分配主从复制权限

 

#查看两台主库的二进制日志坐标

 

 

读写分离搭建-配置第一个从库

 

从库配置(S1-192.168.127.149)

 

1、修改配置文件(/etc/my.cnf)

 

2、重启MySQL服务器

 

 

读写分离搭建-配置第二个从库

 

从库配置(S2-192.168.127.151)

 

1、修改配置文件(/etc/my.cnf)

 

2、重启MySQL服务器

 

 

读写分离搭建-分别在两台从库配置关联的主库

 

change master to master_host='xxx.xxx.xxx.xxx',master_user='xxx',master_password='xxx',master_log_file='xxx',master_log_pos=xxx;

 

分别启动主从复制

 

目前为止,已经配置好了两组主从复制,但是这两组还没有任何关系,所以我们要将这两台主库也相互复制 第一台主库复制第二台主库,第二台主库也复制第一台主库,并启动,查看启动状态,具体操作在下面的具体操作里面

 

 

验证读写分离

 

1、在第一台主库(192.168.127.145)执行如下

会出现一个文本编辑页面,使用键盘的向下箭头,在末尾行输入如下五行,然后保存退出

 

重启mysql服务器

 

2、在第二台主库(192.168.127.150)执行如下

会出现一个文本编辑页面,使用键盘的向下箭头,在末尾行输入如下五行,然后保存退出

 

重启mysql服务器

 

3、在第一台主库(192.168.127.145),登录mysql,并创建itcast远程用户

 

4、在第二台主库(192.168.127.150),登录mysql,并创建itcast远程用户

 

5、在第一台从库(192.168.127.149)执行如下

会出现一个文本编辑页面,使用键盘的向下箭头,在末尾行输入如下一行,然后保存退出

 

重启mysql服务器

 

 

6、在第二台从库(192.168.127.151)执行如下

会出现一个文本编辑页面,使用键盘的向下箭头,在末尾行输入如下一行,然后保存退出

 

重启mysql服务器

 

7、在第一台从库(192.168.127.149),去关联第一台主库,相关的信息在前面的第3步我们记住的参数就是用到这里

 

8、在第二台从库(192.168.127.151),去关联第二台主库,相关的信息在前面的第4步我们记住的参数就是用到这里

 

9、在第一台主库(192.168.127.145),把这台主库当作'从库'去复制第二台主库

 

10、在第二台主库(192.168.127.150),把这台主库当作'从库'去复制第一台主库

 

11、测试。在第一台主库执行如下语句,查看涉及到的数据库服务器的数据同步情况(也就是看一下第二台主库、第一台从库、第二台从库有没有数据)

 

到这里就说明你的环境是正常的,下节课我们将正式学习双主双从的读写分离操作