本來的步驟
- 主庫鎖庫
FLUSH TABLES WITH READ LOCK;
2.線上數(shù)據(jù)庫數(shù)據(jù)提取
mysqldump -uroot -p --default-character-set=utf8 -P3306 --opt --single-transaction zyd1 > /home/666.sql
3.開始遷移數(shù)據(jù)到從庫(scp傳送過去)
scp /home/ root@172.18.252.147:/root/
4.新庫刪除之前的數(shù)據(jù)(看情況,有時(shí)候直接覆蓋掉就可以)
mysql -uroot -p 密碼
drop database zyd1;
create database zyd1;
5.從庫停掉主從連接
登錄到數(shù)據(jù)庫;
stop slave;
reset slave;
6.從庫開始導(dǎo)入主庫傳送過來的文件
mysql -uroot -p zyd1 < *.sql
7.主庫查看現(xiàn)在的binlog文件和位置(找出File和Position)
show master status;
8.從庫開始主從賬號(hào)連接(靈活使用~~~~~~)
CHANGE MASTER TO
MASTER_HOST='172.18.252.146',
MASTER_USER='slave',
MASTER_PASSWORD='111111',
MASTER_LOG_FILE='mysql-bin.000077',
MASTER_LOG_POS=807343661;
9.開啟從庫slave
start slave;
- 查看從庫主從狀態(tài)
show slave status \G
11.主庫解鎖
UNLOCK TABLES;
================后來新玩法*********不鎖庫手動(dòng)主從連接
少了第1步,11步,和第6步
前提:認(rèn)識(shí)幾個(gè)必要的參數(shù)
--skip-lock-tables 不鎖表
--master-data=2 在導(dǎo)出的時(shí)候同時(shí)生成binlog文件名和位置在導(dǎo)出的文件開頭。這個(gè)很重要畦浓。因此第4步也不需要執(zhí)行了厉膀,binlog的文件和位置可以從這里拿到扰她。
--single-transaction 通過將導(dǎo)出操作封裝在一個(gè)事務(wù)內(nèi)來使得導(dǎo)出的數(shù)據(jù)是一個(gè)一致性快照
用這些參數(shù)~~~~~
mysqldump -uroot -p --skip-lock-tables --single-transaction --flush-logs --hex-blob --master-data=2 dataname > /home/666.sql
最后把主從連接配置那里binlog文件和位置替換成導(dǎo)出的文件開頭找到的那個(gè)帶有注釋的file和position就好了。
1.線上數(shù)據(jù)庫數(shù)據(jù)提取
mysqldump -uroot -p --default-character-set=utf8 -P3306 --opt --single-transaction zyd1 > /home/666.sql
2.開始遷移數(shù)據(jù)到從庫(scp傳送過去)
scp /home/ root@172.18.252.147:/root/
3.新庫刪除之前的數(shù)據(jù)(看情況,有時(shí)候直接覆蓋掉就可以)
mysql -uroot -p
drop database zyd1;
create database zyd1;
4.從庫停掉主從連接
登錄到數(shù)據(jù)庫;
stop slave;
reset slave;
5.從庫開始導(dǎo)入主庫傳送過來的文件
mysql -uroot -p zyd1 < *.sql
6.找出file和position
tail -30 導(dǎo)出文件
7.從庫開始主從賬號(hào)連接(靈活使用~~~~~~)
CHANGE MASTER TO
MASTER_HOST='172.18.252.146',
MASTER_USER='slave',
MASTER_PASSWORD='111111',
MASTER_LOG_FILE='mysql-bin.000077',
MASTER_LOG_POS=807343661;
8.開啟從庫slave
start slave;
- 查看從庫主從狀態(tài)
show slave status \G