MYSQL主从复制 && 读写分离
  7rqIQIeFNzUJ 2023年11月27日 58 0

MYSQL主从复制 && 读写分离

概述

1、生产服务器上的数据库MYSQL会进行分库分表、定时备份,还会进行主从复制,实现数据库读写分离。主从有一主一从,一主多从,多主多从3种方式,本篇本章以一主一从为列。

2、MYSQL主从复制中,主服务器负责写数据操作(插入、删除、更新),从服务器负责读数据操作。主服务将数据更改记录日志中,从服务器连接主服务器并读取主服务器日志,从服务器在自己的数据库上执行相同的操作,从而实现了数据的复制,以保持数据的一致性。当然从服务器有一定的延迟,主要受宽带,服务器内存等资源的影响,正常情况下,延迟是在可接受范围内的,是毫秒级别的,不影响系统的正常使用和运营。

15.png

16.png

好处(举例4点):

1、减轻压力:主从复制使得读写操作可以分布到不同的服务器上,从而减轻主服务器的压力,提高系统的整体性能和吞吐量

2、数据保障:在主服务器发生故障或数据丢失时,可以快速切换到从服务器上的数据进行恢复。

3、提高性能:通过在从服务器上执行查询操作,可以避免对主服务器的影响,同时也可以实现实时的数据分析和报表生成等需求。

4、避免宕机:当主服务器发生故障时,从服务器自动提升为新的主服务器。

1.主机配置

修改配置文件:vim /etc/my.cnf

#主服务器唯一ID
server-id=1
#启用二进制日志
log-bin=mysql-bin
# 设置不要复制的数据库(可设置多个)
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
#设置需要复制的数据库
binlog-do-db=需要复制的主数据库名字
#设置logbin格式
binlog_format=STATEMENT

17.png

2.从机配置

修改配置文件:vim /etc/my.cnf
#从服务器唯一ID
server-id=2
#启用中继日志
relay-log=mysql-relay

3.主机、从机重启 MySQL 服务

service mysql restart

4.主机从机都关闭防火墙或者开放端口

systemctl stop firewalld

5.在主机上建立帐户并授权 slave

#在主机MySQL里执行授权命令
GRANT REPLICATION SLAVE ON *.* TO 'slave'@'%' IDENTIFIED BY '123123';

#查询master的状态show master status;

18.png

记录下File和Position的值

执行完此步骤后不要再操作主服务器MySQL,防止主服务器状态值变化

6.在从机上配置需要复制的主机

#复制主机的命令
CHANGE MASTER TO MASTER_HOST='主机的IP地址',
MASTER_USER='slave',
MASTER_PASSWORD='123123',
MASTER_LOG_FILE='mysql-bin.具体数字',MASTER_LOG_POS=具体值; 

19.png


#启动从服务器复制功能
start slave;
#查看从服务器状态
show slave status\G;

#下面两个参数都是Yes,则说明主从配置成功!
# Slave_IO_Running: Yes
# Slave_SQL_Running: Yes

20.png

7.主机新建库、新建表、insert 记录,从机复制

21.png

8.如何停止从服务复制功能

stop slave;
 

9.如何重新配置主从

stop slave; 
reset master;

如果本篇文章对你有帮助,记得给博主点个赞哦!

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月27日 0

暂无评论

推荐阅读
7rqIQIeFNzUJ