mysql主从分离

26 篇文章 0 订阅
本文详细介绍了MySQL主从读写分离的概念、配置步骤及总结。通过设置主从库,可以实现数据的安全备份,提升系统可用性和并发处理能力。在主服务器上启用bin-log,配置server-id,然后在从服务器上配置relay-log并同步主库信息,最后通过测试验证主从同步的成功。
摘要由CSDN通过智能技术生成

一、MySQL主从读写分离概念

1.什么是Mysql主从分离

将读操作和写操作分离到不同的数据库上,避免主服务器出现性能瓶颈;主服务器进行写操作时,不影响查询应用服务器的查询性能,降低阻塞,提高并发; 数据拥有多个容灾副本,提高数据安全性,同时当主服务器故障时,可立即切换到其他服务器,提高系统可用性;

2.为什么要实现Mysql主从分离
大型网站为了软解大量的并发访问,除了在网站实现分布式负载均衡,远远不够。到了数据业务层、数据访问层,如果还是传统的数据结构,或者只是单单靠一台服务器扛,如此多的数据库连接操作,数据库必然会崩溃,数据丢失的话,后果更是 不堪设想。这时候,我们会考虑如何减少数据库的联接,一方面采用优秀的代码框架,进行代码的优化,采用优秀的数据缓存技术如:memcached,如果资金丰厚的话,必然会想到假设服务器群,来分担主数据库的压力。

3.数据库主从配置
注:可以是一主一从,一主多从,主从从等。

二、MySQL主从库配置

  1. master上配置bin-log日志
    修改mysql的配置文件:# vim /etc/my.cnf,加上如下内容,修改配置后需要重启mysql服务器。
log-bin= master-bin  #[必须]启用二进制日志
log-bin-index=master-bin.index
server-id         = 4          #[必须]服务器唯一ID,默认是1,最好取ip的后3位
expire-logs-days  = 7           #只保留7天的二进制日志,以防磁盘被日志占满

测试log_bin是否成功开启
mysql> show variables like ‘%log_bin%’;
出现下图,log_bin为ON则表示开启成功,OFF表示开启失败
在这里插入图片描述
配置好后,查看主服务器状态:show master status
在这里插入图片描述
2. slave上配置relay-log
配置从服务器:vim /etc/my.cnf,点击 i 进入编辑模式,添加如下配置:

relay-log-index=slave-relay-bin.index
relay-log=slave-bin
server-id=152 #只要和master的server-id不一样就可以了

  1. 将master和slave联系起来,slave需要知道master的地址

master的数据库中建立备份账号
repl为用户名,192.168.0.152代表从数据库的主机地址,如下表示远程地址为密码为123的,用户名是repl就可以连接到master主机,并为其授予 replication slave 权限。123为master的连接密码。
mysql> create user repl; # 创建用户名为repl的用户
mysql> GRANT REPLICATION SLAVE ON . TO ‘repl’@‘192.168.247.152’ IDENTIFIED BY ‘123456’;
mysql> FLUSH PRIVILEGES;
mysql> use mysql;
mysql> select user,authentication_string,host from user;
可看到我们刚创建的备份账号:
在这里插入图片描述

  1. 我们已经在主库配置好了允许从库访问主库的用户名和密码,下面我们对slave进行操作:
    mysql> change master to master_host=‘192.168.0.188’,master_port=3306,master_user=‘repl’,master_password=‘123’,master_log_file=‘master-bin.000001’,master_log_pos=154;
    其中的master_log_file,就是主库中file,在主库中使用 show master status;就可以看到了。
    启动slave: mysql> start slave;
    查看slave从机的状态(\G表示竖着展示): mysql> show slave status \G
  2. 关闭掉主数据库的读取锁定
    mysql> unlock tables;

三、总结

通过测试验证,我们的mysql主从同步就配置好了,这里需要注意的是主库的mysql版本不能高于从库的mysql版本,因为MySQL总的语法是高版本兼容底版本的,如果从库的版本要比主库的版本低,可能主库执行的sql语句,从库执行就会报错,导致主从同步失败;从库只能读数据,不能在从库写数据,主库既可以读数据,也可以写数据。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值