mysql 主从复制与读写分离

一 主从复制

主从复制:如果仅仅从一台mysql数据库服务器进行数据的存取,如果网站用户多且数据量大时,无疑会对mysql数据库服务器造成巨大的压力,这是主从

复制的优势便体现出来了。

原理:

1:主服务器凡运行语句,都产生一个二进制日志 binlog
 
2:从服务器不断读取主服务器的binlog
 
3:从主服务读取到的binlog,转换为自身可执行的relaylog,
 
4:执行relaylog实现数据同步

实现步骤

1 主服务器 编辑mysql配置文件 vi /etc/my.cnf

log_bin = mysql-bin;   //开启二进制日志功能
 
binlog_format = mixed; //statement:磁盘变化是记录;row:sql语句时记录;mixed:自动判断
 
server_id = 1;           //给服务器一个id

2 从服务器 编辑mysql配置文件 

relay_log = relay-log;
 
server_id = 2

3 主服务器创建授权账号

GRANT REPLICATION CLIENT , GRANT REPLICATION SLAVE ON *.* to 'rep1'@'192.168.10.131' identified by ‘password’;

4 从服务器获取权限连接

change master to
 
master_host=’192.168.10.130’,  //主服务器的主机地址
 
master_user=’rep1’,            //主服务器配置的账号
  
master_password=’password’,    //主服务器配置的密码
 
master_log_file=’mysql-bin.000005’,  //这里及下面的值需要在主服务器里使用 show master status 查看
 
master_log_pos=261;

PS 后面的两项需要在主服务器使用命令 show master status查看

show master status

5 启动slave服务器

start slave

如果启动失败或配置写错,可以使用命令 restart slave重新配置

restart slave

PS : 可以使用show slave status查看从服务器

二 读写分离

如果只是单纯的一台master和一台slave:

在程序里所有的写操作(insert , update , delete)选择连接master,所有的读操作(select)选择连接slave,即可完成即可分离。

但是如果master和slave多了显然程序变得复杂了,可以采用 mysql-proxy 具体用法参照相关文档

三 主主复制

两台mysql服务器既是master又是slave,配置起来也很简单,及配置master有配置slave,互相配置授权账号,都开启log_bin和binlog_format和

relay_log (解决主键冲突的问题)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值