linux主从复制

1.什么是主从复制

概念: 主从复制是用来建立一个和 主数据库完全一样的数据库环境称为从数据库;主数据库一般是准实时的业务数据库。

2.主从复制作用

我们来思考如果在企业网站中,后端MYSQL数据库只有一台时候,会有以下问题:

1、单点故障服务不可用
2、无法处理大量的并发数据请求
3、数据丢失

所以通过主从复制后,它的优点就很明显

1、如果主节点出现故障,那么我们就直接将服务切到从节点,来保证服务立马可用。

2、如果并发请求特别大的时候,我们可用进行读写分离操作,让主库负责写,从库负责读。

3、如果主库数据丢失,但从库还保存一份,减少数据丢失的风险。

3.主从复制原理

下面主要分成了三步,下面会详细说明。

(1) Master的更新事件(update、insert、delete)会按照顺序写入bin-log中。当Slave连接到Master的后,Master机器会为Slave开启

binlog dump线程,该线程会去读取bin-log日志

(2) Slave连接到Master后,Slave库有一个I/O线程 通过请求binlog dump thread读取bin-log日志,然后写入从库的relay log日志中。

(3) Slave还有一个 SQL线程,实时监控 relay-log日志内容是否有更新,解析文件中的SQL语句,在Slave数据库中去执行。

4.主从复制linux步骤

vim /etc/my.cnf
#主
server-id=1
log-bin=mysql-bin
log-slave-updates
slave-skip-errors=all
#备
server-id=2
log-bin=mysql-bin
log-slave-updates
slave-skip-errors=all

#重启mysql服务
systemctl restart mysqld

#登录mysql执行如下命令检测配置是否生效
SHOW VARIABLES like 'server_id';

#降低密码强度
SET GLOBAL validate_password_policy=LOW;

#修改密码长度策略
SET GLOBAL validate_password_length=4;

#授权远程登陆
CREATE USER 'root'@'localhost' IDENTIFIED BY '1234';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '1234';

#登录master节点执行如下命令
show master status;

#登录从节点执行如下命令:
change master to 
master_host='192.168.99.50',
master_user='lpd',
master_password='1234',
master_log_file='mysql-bin.000002',
master_log_pos=3634;

#开启从节点
start slave; 
#关闭主从复制(在从节点执行)
stop  slave;

# 查看从节点状态
show slave status\G;

注意:如果出现Slave I/O: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work. Error_code: 1593错误,请执行如下命令,rm -rf /var/lib/mysql/auto.cnf删除这个文件,之所以出现会 出现这样的问题,是因为我的从库主机是克隆的主库所在的主机,所以auto.cnf文件中保存的UUID 会出现重复.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值