mysql主从复制及原理

主从复制原理

主要基于MySQL二进制日志
主要包括三个线程(2个I/O线程,1个SQL线程)

1、MySQL将数据变化记录到二进制日志中;

2、Slave将MySQL的二进制日志拷贝到Slave的中继日志中;

3、Slave将中继日志中的事件在做一次,将数据变化,反应到自身(Slave)的数据库

实现主从复制

在主服务器(master)上启用二进制日志

选择一个唯一的server-id
创建具有复制权限的用户
在从服务器(slave)上 启用中继日志(二进制日志可开启,也可不开启)

选择一个唯一的server-id
连接至主服务器,并开始复制

主ip: 192.168.128.128
从ip:192.168.128.130

进入主在/etc/my.cnf 写入:

[mysqld]
log_bin = mysql-bin
server_id = 128

重启数据库
2)
mysql> grant replication slave on *.* to 'rep'@'192.168.128.%' identified by 
'123456';
mysql> show grants for 'rep'@'192.168.128.%';

3)锁表设置只读
为后面备份准备,注意生产环境要提前申请停机时间;
mysql> flush tables with read lock;

4)查看主库状态
查看主库状态,即当前日志文件名和二进制日志偏移量
mysql> show master status;

5)备份数据库数据
mysqldump -uroot -p -A -B |gzip > /server/backup/mysql_bak.$(date +%F).sql.gz

6)解锁
mysql> unlock tables;

7)主库备份数据上传到从库
scp /server/backup/mysql_bak.2015-11-18.sql.gz 192.168.128.128:/server/backup/


二:从库上设置
1)设置server-id值并关闭binlog参数

 #log_bin = /data/mysql/data/mysql-bin

 server_id = 130
 重启数据库:


2)还原从主库备份数据
 cd /server/backup/

 gzip -d mysql_bak.2015-11-18.sql.gz 

 mysql -uroot -p < mysql_bak.2015-11-18.sql

 检查还原:

 mysql -uroot -p -e 'show databases;'

3)设定从主库同步

mysql> change master to
MASTER_HOST='192.168.95.128',
MASTER_PORT=3306,
MASTER_USER='rep',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysql-bin.000003',
MASTER_LOG_POS=329;

4)启动从库同步开关
 mysql> start slave;
检查状态:
 mysql> show slave status\G
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员Fy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值