什么是读写分离,说白了就是mysql服务器读的操作和写的操作是分开的,当然这个需要两台服务器,master负责写,slave负责读,当然我们可以使用多个slave,这样我们也实现了简单意义上的高可用和负载均衡,只不过这种调度算法只是简单的轮循。我们如何让master和slave这样进行工作呢,其实我们需要一个代理,简单来说就是一个客户端和mysql服务器之间的一个管家,当我们客户端需要操作查询数据库的时候,我们先把操作发给这个管家,然后管家通过识别,哦~原来你要进行select操作,那么我就把你这个请求发给master,又来一个原来你需要进行的是插入insert的操作,那么我就把你这个请求发给slave,当如果有多个slave的时候,我就通过slave的权重,轮循的发给每一个slave,这样我们就实现了读写分离操作,以及简单的负载均衡。
步骤:
1. master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events)
2. slave将master的binary log events拷贝到它的中继日志(relay log);
3. slave重做中继日志中的事件,将改变反映它自己的数据
安装多个MySQl,模拟多台数据库服务器
• 解压mysql-5.5.47.zip
• 复制my-medium.ini文件,重命名为my.ini
• 账号 root 密码 空
master
master
slaveA
slaveA
slaveA
启动:
master
master
停止:
Master -slave 配置
主的
主的
从的
主的用户名
主的
Slave:
测试
Slave: