【MySQL】一文解決主庫已有數據的主從複製

主從複製配置方案和實際的場景有很多,在之前配置了主從庫都是全新的配置方案
在這一篇會配置主庫存在數據
然後配置主從複製

主從複製所需要的環境

【Docker】簡單介紹與安裝
【Docker】安裝MySQL8.0
【MySQL】使用docker配置主從複製(主庫和從庫都是全新的情況)

應用的場景

  • 我們的項目已經運行了一段時間
  • 發現從庫已經不夠用
  • 需要添加的新的從庫
  • 但是現在的主庫已經存在了很多的數據
  • 下來咱們來實現一下這個配置方案

開始配置

可以看到以下三張圖
第一張是mysql-master主庫 存在kaka_test_master_slave
第二張是mysql_slave從庫 存在kaka_test_master_slave
第三張是mysql_slave1從庫 沒有kaka_test_master_slave

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

給mysql_master主庫添加一條數據測試mysql_slave是否已經開啓了主從複製

在這裏需要注意一下,我是在2020-4-8號配置的,然後把主機關閉了,就出現了主從複製重啓失敗
原因是主機的MASTER_LOG_FILE這個文件名發生了變化,修改一下,然後重啓主從複製即可

我們先在主機插入了一條數據id爲6
在這裏插入圖片描述
然後去查看master-slave的數據情況(主從複製已經正常)
在這裏插入圖片描述

開始給mysql-slave1導入mysql-master的數據庫

  • 配置有倆種方案
  • 第一種是放棄主庫之前的數據,配置主從複製
  • 第二種是複製主庫數據到mysql-slave1這個從庫,然後配置主從複製

在實際案例中,一般第一種情況很少使用,配置主從複製就是爲了緩解讀寫讀的壓力。沒有了以前的數據那就沒什麼意義了。
所以本案例主要講第二種
由於爲了演示方便所以就只准備了一張表

1.把mysql-master的數據庫直接鎖住

flush tables with read lock;

在這裏插入圖片描述
2.查看主數據庫狀態,並查看file 和 position的值
在這裏插入圖片描述
3.備份數據庫

docker exec da30bacb60fd /usr/bin/mysqldump -u root --password=123456 kaka_test_master_slave > backup.sql

這個時候會報錯是因爲我們在終端輸入的密碼
在這裏插入圖片描述
在mysql-master配置文件etc/my.cnf加入下面配置即可
在這裏插入圖片描述
然後在執行一下命令,就可以看到導出的mysql數據庫了

docker exec da30bacb60fd /usr/bin/mysqldump kaka_test_master_slave > backup.sql

# 或者
docker exec -it mysql-master mysqldump -uroot -p123456 kaka_test_master_slave > kaka.sql

在這裏插入圖片描述
4.給master-slave1從庫創建數據庫
在這裏插入圖片描述
5.把備份數據庫複製到master-slave1容器中

# 複製文件到從機容器
docker cp backup.sql mysql-slave1:/

# 進入到mysql中
mysql -u root -p

# 導入MySQL
source /home/kaka.sql;

在這裏插入圖片描述
在這裏插入圖片描述

配置主從複製

1.跟之前的操作一樣,先給mysql-slave1的mysql配置文件配置 server_id
這裏配置的是3
或者直接set global server_id=3
在這裏插入圖片描述
2.給予從庫權限
這裏切記MASTER_LOG_POS這個參數,是在主庫 show master status 獲得的

CHANGE MASTER TO
    -> MASTER_HOST='172.10.0.2',
    -> MASTER_USER='master',
    -> MASTER_PASSWORD='123456',
    -> MASTER_LOG_FILE='mysql-bin.000001',
    -> MASTER_LOG_POS=472;

3.開啓主從複製

start slave

4.查看主從複製狀態

show slave status\G

在這裏插入圖片描述

測試

先把主機數據庫解開,然後添加了一條數據 現在的id邊爲7了

unlock tables;

在這裏插入圖片描述

看我們mysql-slave的數據

在這裏插入圖片描述

在來看mysql-slave1的數據

在這裏插入圖片描述

以上就是配置的全部過程

博主微信歡迎交流

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章