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