image.png
主要通過mysql的二進(jìn)制日志實(shí)現(xiàn)的主從同步 會(huì)因?yàn)榫W(wǎng)絡(luò)原因出現(xiàn)同步延遲問題,然后導(dǎo)致同步不及時(shí)
如果對(duì)同步要求高的項(xiàng)目可以使用PXC方案實(shí)現(xiàn)主從同步,但是代價(jià)就是對(duì)資源的一個(gè)消耗 頂峰取決于集群中 的短板
采用的是一個(gè)中間管理者 來負(fù)責(zé)所有設(shè)備的同步情況漱办,所有設(shè)備都返回Ok 才會(huì)返回Ok 一個(gè)失敗 便所有都回退 返回失敗
前提是 主庫開啟了二進(jìn)制的日志
備份主庫的所有表 在從庫中執(zhí)行一遍
mysqldump -uroot -p --all-databases --lock-all-tables > ~/master_db.sql
說明:
- -u :用戶名
- -p :示密碼
- --all-databases :導(dǎo)出所有數(shù)據(jù)庫
- --lock-all-tables :執(zhí)行操作時(shí)鎖住所有表,防止操作時(shí)有數(shù)據(jù)修改
- ~/master_db.sql :導(dǎo)出的備份數(shù)據(jù)(sql文件)位置狗超,可自己指定
主庫創(chuàng)建用于主從同步進(jìn)行連接的賬號(hào)
#創(chuàng)建賬號(hào)
CREATE USER 'save'@'%' IDENTIFIED BY 'password';
#賬號(hào)賦權(quán) 一般都賦權(quán)為REPLICATION SLAVE
GRANT REPLICATION SLAVE ON *.* TO 'save'@'%'
修改密碼連接方式 不然的話會(huì)報(bào)錯(cuò)
#報(bào)錯(cuò)內(nèi)容
#Authentication plugin ‘caching_sha2_password‘ reported error: Authentication
##修改密碼連接方式
ALTER USER 'save'@'%' IDENTIFIED WITH mysql_native_password BY '13014786999Wzp.';
###更新密碼加密
ALTER USER 'save'@'%' IDENTIFIED WITH mysql_native_password BY '13014786999Wzp.';
獲取主服務(wù)器的二進(jìn)制日志信息
SHOW MASTER STATUS;
File為使用的日志文件名字瞳腌,Position為使用的文件位置,這兩個(gè)參數(shù)須記下哎垦,配置從服務(wù)器時(shí)會(huì)用到
image.png
從庫配置
如果需要限制同步數(shù)據(jù)庫 可自行在my.cnf文件中添加如下配置
replicate-do-db=db_name #需要同步的數(shù)據(jù)庫名
設(shè)置連接
##
change master to master_host='192.168.204.129', master_user='slave', master_password='slave',master_log_file='mysql-bin.000001', master_log_pos=590;
注:
- master_host:主服務(wù)器Ubuntu的ip地址
- master_log_file: 前面查詢到的主服務(wù)器日志文件名
- master_log_pos: 前面查詢到的主服務(wù)器日志文件位置
- master_port:主庫的mysql的連接端口 默認(rèn)3306
開啟主從同步
##開啟
START SLAVE
##關(guān)閉
stop SLAVE
###查看狀態(tài)
show slave status \G;
image.png