主從復制原理
主要基于MySQL二進制日志
主要包括三個線程(2個I/O線程,1個SQL線程)
1、MySQL將數(shù)據(jù)變化記錄到二進制日志中;
2、Slave將MySQL的二進制日志拷貝到Slave的中繼日志中;
3、Slave將中繼日志中的事件在做一次,將數(shù)據(jù)變化,反應到自身(Slave)的數(shù)據(jù)庫
實現(xiàn)主從復制
在主服務器(master)上啟用二進制日志
選擇一個唯一的server-id
創(chuàng)建具有復制權(quán)限的用戶
在從服務器(slave)上 啟用中繼日志(二進制日志可開啟,也可不開啟)
選擇一個唯一的server-id
連接至主服務器,并開始復制文章來源:http://www.zghlxwxcb.cn/news/detail-624584.html
主ip: 192.168.128.128
從ip:192.168.128.130文章來源地址http://www.zghlxwxcb.cn/news/detail-624584.html
進入主在/etc/my.cnf 寫入:
[mysqld]
log_bin = mysql-bin
server_id = 128
重啟數(shù)據(jù)庫
2)
mysql> grant replication slave on *.* to 'rep'@'192.168.128.%' identified by
'123456';
mysql> show grants for 'rep'@'192.168.128.%';
3)鎖表設置只讀
為后面?zhèn)浞轀蕚?,注意生產(chǎn)環(huán)境要提前申請停機時間;
mysql> flush tables with read lock;
4)查看主庫狀態(tài)
查看主庫狀態(tài),即當前日志文件名和二進制日志偏移量
mysql> show master status;
5)備份數(shù)據(jù)庫數(shù)據(jù)
mysqldump -uroot -p -A -B |gzip > /server/backup/mysql_bak.$(date +%F).sql.gz
6)解鎖
mysql> unlock tables;
7)主庫備份數(shù)據(jù)上傳到從庫
scp /server/backup/mysql_bak.2015-11-18.sql.gz 192.168.128.128:/server/backup/
二:從庫上設置
1)設置server-id值并關閉binlog參數(shù)
#log_bin = /data/mysql/data/mysql-bin
server_id = 130
重啟數(shù)據(jù)庫:
2)還原從主庫備份數(shù)據(jù)
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;
檢查狀態(tài):
mysql> show slave status\G
到了這里,關于mysql主從復制及原理的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!