您好,登錄后才能下訂單哦!
mysql安裝點擊此處
MySQL主從介紹
MySQL主從又叫做Replication、AB復制。簡單講就是A和B兩臺機器做主從后,在A上寫數據,另外一臺B也會跟著寫數據,兩者數據實時同步。
MySQL主從是基于binlog的,主上須開啟binlog才能進行主從。
指定數據庫同步操作:
環境說明:需求是創建主從復制環境,要求master端只同步主庫中的test庫到 slave端
master端IP:10.10.10.1 slave端IP:10.10.10.2
主從復制條件:
1.開啟主庫binlog功能
2.開啟主從庫server-id
3.確保主從配置文件my.cnf所有server-id不同
4.主庫建立同步的賬戶rep并且授權replication
5.在主庫鎖表flush tables with read lock; 并查看主庫上binlog文件及位置點
show master status\G;記錄下此binlog文件和位置點。
6.在master端新開mysql窗口導出全備,恢復備份數據到從庫,
7.登錄從庫,CHANGE MASTER TO…..
自動在從庫生成配置文件master.info
打開復制開關start slave;show slave status\G
8.解鎖,開放用戶寫入功能
操作過程:
主庫my.cnf配置文件件參數:
vi /etc/my.cnf
server-id=1111 (和從庫不同即可)
log-bin=mysql-bin (開啟binlog)
binlog-do-db=數據庫名稱 (記錄指定庫的binlog,模式不同,記錄結果不同。)
binlog_format=mixed (設置binlog模式)
expire_logs_days = 7 (保留7天的binlog)
重啟master端mysql
centos 6:
/etc/init.d/mysql restart
centos 7:
systemctl restart mysql
從庫my.cnf配置文件件參數:
vim /etc/my.cnf
server-id=2222 (從庫的ID,和主庫不沖突即可)
重啟slave端mysql
centos 6:
/etc/init.d/mysql restart
centos 7:
systemctl restart mysql
一.master 上操作:
主庫建立同步的賬戶rep并且授權replication;在主庫鎖表flush tables with read lock; 并查看主庫上binlog文件及位置點
show master status\G;記錄下此binlog文件和位置點。
mysql -uroot -p'數據庫密碼' -e "grant replication slave on *.* to rep@'10.10.10.2' identified by 'rep@back123'; flush privileges;flush tables with read lock; show master status;"
備份指定數據庫數據
mysqldump -uroot -p'數據庫密碼' -B 數據庫名稱 --single-transaction --events|gzip >/root/數據庫名稱_$(date +%F).sql.gz (輸出壓縮的sql文件)
mysqldump -uroot -p'數據庫密碼' -B 數據庫名稱 --single-transaction --events >/root/數據庫名稱_$(date +%F).sql (輸出sql文件)
傳輸數據到slave端從庫機器
scp -rp -P ssh服務端口 sql文件名稱 root@從庫IP:/root/
二.slave上操作:
登陸從庫:
gzip -d test.sql.gz; source /root/test.sql;
stop slave;
reset slave all;
stop slave;
CHANGE MASTER TO
MASTER_HOST='主庫地址',
MASTER_PORT=3306, ------->端口
MASTER_USER='新建數據庫用戶',
MASTER_PASSWORD='新建用戶的密碼',
MASTER_LOG_FILE='日志文件名稱',
MASTER_LOG_POS=日志的Position值;
start slave;show slave status\G;
三.最后在master上執行解鎖操作:
unlock tables;
到此處配置完成:
在master上創建測試表測試:
同步單個數據庫可以在主服務器或者從服務器上配置:
主服務器:
binlog-do-db= 僅同步指定的庫
binlog-ignore-db= 忽略指定的庫
從服務器:
replicate_do_db= 同步指定的庫
replicate_ignore_db= 忽略指定的庫
replicate_do_table= 同步指定的表
replicate_ignore_table= 忽略指定的表
replicate_wild_do_table= 如aming.%,支持通配符
replicate_wild_ignore_table=
主從過程
主將更改操作記錄到binlog中
從將主的binlog事件(SQL語句)同步到本機并記錄在relaylog中
從根據relaylog里面的SQL語句按順序執行
說明: 該過程有三個線程,主上有一個log dump線程,用來和從的i/o線程傳遞binlog;從上有兩個線程,其中i/o線程用來同步主的binlog并生成relaylog,另外一個SQL線程用來把relaylog里面的SQL語句落地。
應用環境
備份重要數據
分擔主庫數據讀取壓力
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。