主从复制原理
主要基于MySQL二进制日志
主要包括三个线程(2个I/O线程,1个SQL线程)
1、MySQL将数据变化记录到二进制日志中;
2、Slave将MySQL的二进制日志拷贝到Slave的中继日志中;
3、Slave将中继日志中的事件在做一次,将数据变化,反应到自身(Slave)的数据库
实现主从复制
在主服务器(master)上启用二进制日志
选择一个唯一的server-id
创建具有复制权限的用户
在从服务器(slave)上 启用中继日志(二进制日志可开启,也可不开启)
选择一个唯一的server-id
连接至主服务器,并开始复制文章来源:https://www.toymoban.com/news/detail-624584.html
主ip: 192.168.128.128
从ip:192.168.128.130文章来源地址https://www.toymoban.com/news/detail-624584.html
进入主在/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
到了这里,关于mysql主从复制及原理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!