一骇两、讀寫分離(主從復(fù)制)
主從復(fù)制:當(dāng)主服務(wù)器有寫入(insert/update/delete)語(yǔ)句時(shí)候,從服務(wù)器自動(dòng)獲取
讀寫分離:insert/update/delete語(yǔ)句操作一臺(tái)服務(wù)器撤奸,select操作另一個(gè)服務(wù)器
從庫(kù)生成兩個(gè)線程,一個(gè)I/O線程,一個(gè)SQL線程舅列;
i/o線程去請(qǐng)求主庫(kù) 的binlog,并將得到的binlog日志寫到relay log(中繼日志) 文件中卧蜓;
主庫(kù)會(huì)生成一個(gè) log dump 線程剧蹂,用來(lái)給從庫(kù) i/o線程傳binlog;
SQL 線程烦却,會(huì)讀取relay log文件中的日志宠叼,并解析成具體操作,來(lái)實(shí)現(xiàn)主從的操作一致其爵,而最終數(shù)據(jù)一致
二冒冬、bin-log日志
概念:binlog即二進(jìn)制日志,它記錄了數(shù)據(jù)庫(kù)上的所有改變并以二進(jìn)制的形式保存在磁盤中摩渺,它可以用來(lái)查看數(shù)據(jù)庫(kù)的變更歷史简烤、數(shù)據(jù)庫(kù)增量備份和恢復(fù)、Mysql的復(fù)制(主從數(shù)據(jù)庫(kù)的復(fù)制)摇幻。
簡(jiǎn)單概括:binlog日志就是記錄MySQL數(shù)據(jù)庫(kù)增/刪/改SQL語(yǔ)句
作用:實(shí)現(xiàn)主從復(fù)制横侦、災(zāi)難恢復(fù)
建議:binlog 的格式設(shè)置為row模式
1、開(kāi)啟binlog日志
步驟1:打開(kāi)MySQL配置文件vi /etc/my.cnf并修改
步驟2:重啟服務(wù)
步驟3:登錄MySQL查看bin-log日志是否開(kāi)啟
2绰姻、查看binlog日志里面的內(nèi)容
列表:
show master logs
清空:
reset master
刷新:
flush logs
查看指定日志:
show binlog events in '日志鍵名'
步驟1:查看列表
步驟2:刷新(生成一個(gè)新文件存儲(chǔ))
步驟3:創(chuàng)建d1數(shù)據(jù)庫(kù)和t1表
create database data1;
use data1;
create table table1 (id int);
步驟4:查看binlog日志中的SQL語(yǔ)句
三枉侧、主從復(fù)制具體配置步驟
1、配置主服務(wù)器
步驟1:修改配置文件狂芋,開(kāi)啟binlog日志
步驟2:修改配置文件榨馁,設(shè)置一個(gè)server_id=數(shù)字(注:數(shù)字必須唯一)
步驟3:重啟服務(wù)
步驟4:創(chuàng)建用戶(目的,讓從服務(wù)器來(lái)復(fù)制數(shù)據(jù))
create user 'copyer'@'%' IDENTIFIED BY '666666';
grant all on . to 'copyer'@'%';
FLUSH PRIVILEGES;
步驟5:關(guān)閉防火墻或開(kāi)放3306端口
2帜矾、配置從服務(wù)器
步驟1:修改配置文件翼虫,設(shè)置一個(gè)server-id=數(shù)字(注:數(shù)字必須唯一)
步驟2:重啟服務(wù)
步驟3:通過(guò)change master 語(yǔ)句指定同步主位置
-> 切換到主服務(wù)器并查看當(dāng)前主服務(wù)器信息屑柔,通過(guò)SQL語(yǔ)句:【show master status】
-> 切換到從服務(wù)器執(zhí)行同步語(yǔ)句
change master to
master_host='192.168.142.131',master_user='copyer',master_password="666666",master_log_file='localhost-bin.000013',master_log_pos=839;
步驟4:從服務(wù)器開(kāi)啟同步
步驟5:從服務(wù)器驗(yàn)證
注意:
-> 如果出現(xiàn)錯(cuò)誤,可以重新登陸MySQL然后重啟slave服務(wù)嘗試珍剑。
-> 如果使用的是虛擬機(jī)克隆的兩個(gè)系統(tǒng)掸宛,則MySQL是一樣的,也會(huì)報(bào)錯(cuò)’UUIDs’問(wèn)題招拙,需要?jiǎng)h除MySQL數(shù)據(jù)目錄下的auto.cnf然后重啟(注:重啟后會(huì)自動(dòng)創(chuàng)建一個(gè)唯一的uuid)旁涤,然后重啟nysql服務(wù)即可。
3迫像、測(cè)試