MySQL主从复制和读写分离

MySQL主从复制的好处

数据备份
读写分离
数据库负载均衡
高可用

主从复制的概念与作用

在实际的生产环境中,对数据库的读和写都在同一个数据库服务器中,是不能满足实际需求的,通过主从复制的方式来同步数据,再通过读写分离来提升数据库的并发负载能力

主从复制的原理

MySQL的主从复制是一个异步的复制过程(虽然一般情况下感觉是实时的),数据将从一个MySQL数据库(Master)复制到另一个MySQL数据库(Slave),在Master和Slave之间实现整个主从复制的过程是由三个线程参与完成的。其中两个线程(SQL线程和IO线程)在Slave端,另一个线程(I/O线程)在Master端。
  要实现MySQL的主从复制,首先必须打开Master端的binlog记录功能,否则就无法实现。binlog: binary log,是主库中保存所有更新事件日志的二进制文件。因为整个复制过程实际上就是Slave从Master端获取binlog日志,然后在Slave上以相同顺序执行获取的binlog日志中的记录的各种SQL操作。总而言之是通过二进制sql文件实现的主从复制也就是mysql-bin.00000x文件。

在这里插入图片描述

主从复制与读写分离的关系

Mysql的主从复制和mysql的读写分离两者有紧密的联系,首先要部署主从复制,只有主从复制完成了,才能再此基础上进行数据的读写分离。

主从复制的配置

准备两台177(master),178(slave)两台服务器

修改主(master)服务器

vi /etc/my.cnf 新增以下内容
###服务器id
server_id=177
###开启日志文件
log-bin=mysql-bin
修改完毕重启MYSQL服务

主服务器给从服务器账号授权

mysql8.0以下:
GRANT REPLICATION SLAVE ON . to ‘mysync’@’%’ identified by ‘q123456’;
MySQL8.0以上:
CREATE USER ‘mysync’@’%’ IDENTIFIED BY ‘q123456’;
GRANT REPLICATION SLAVE ON . TO ‘mysync’ ;

登录主服务器的mysql,查询master的状态
show master status;
在这里插入图片描述
如果结果为null,则主服务器my.cf没有配置好.

修改从(slave)服务器

###服务器id
server_id=178
###开启日志文件
log-bin=mysql-bin
###需要复制的数据库
binlog_do_db=test

连接主服务器开始同步操作

– 先执行关闭同步
stop SLAVE
CHANGE MASTER TO master_host = ‘192.168.198.177’,
master_user = ‘mysync’,
master_password = ‘q123456’,
master_log_file = ‘mysql-bin.000001’,
master_log_pos = 6998;
– 开始同步
start SLAVE

– 查看服务器复制的状态,主从复制是否成功
SHOW SLAVE STATUS;
在这里插入图片描述
Slave_IO_Running: Yes    //此状态必须YES
Slave_SQL_Running: Yes     //此状态必须YES

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值