主從復(fù)制,讀寫分離說明及配置
當業(yè)務(wù)越來越大饮睬,單臺服務(wù)器已經(jīng)不能扛住壓力,此時添加服務(wù)器來分擔(dān)流量壓力篮奄,提高網(wǎng)站并發(fā)量捆愁。
實現(xiàn)讀取分離功能至少兩臺數(shù)據(jù)庫服務(wù)器割去,一臺為主服務(wù)器負責(zé)寫入數(shù)據(jù)服務(wù),一臺為從服務(wù)器負責(zé)提供查詢服務(wù)昼丑,主服務(wù)器的任何操作都會同步到從服務(wù)器上呻逆。
主服務(wù)器配置:
vi my.cnf ?# linux ?my.ini #windows
[mysqld]
配置唯一的server-id
server-id= N(數(shù)字)
開啟binlog二進制日志
log-bin=mysql-bin
獲取master二進制日志文件名及位置
show master status;
創(chuàng)建一個用于slave和master通信的用戶賬號
#創(chuàng)建賬號
grant權(quán)限 ?on 數(shù)據(jù)庫.數(shù)據(jù)表 ?to ?‘用戶名’@’ip地址’ ??identified ?by ‘密碼’;
#立刻生效
flush privileges;
從服務(wù)器配置
配置唯一的server-id
使用master分配的用戶賬號讀取master二進制日志
#先停止從服務(wù)
stop slave;
CHANGE MASTER TO
??#主服務(wù)器地址
??MASTER_HOST='master2.mycompany.com',
#主服務(wù)器創(chuàng)建的通訊賬號
??MASTER_USER='replication',
??#主服務(wù)器密碼
??MASTER_PASSWORD='bigs3cret',
??#主服務(wù)器端口
??MASTER_PORT=3306,
??#主服務(wù)器binlog日志文件名
??MASTER_LOG_FILE='master2-bin.001',
?#日志記錄起點位置
??MASTER_LOG_POS=4,
?#連接重試次數(shù)
??MASTER_CONNECT_RETRY=10;
#啟動從服務(wù)器
start slave;
其他命令
#刪除賬號
drop ?user‘用戶名’@’ip地址’;
#執(zhí)行該命令,就會產(chǎn)生一個新的binlog日志
flush logs;
#清空所有的binlog日志菩帝,并產(chǎn)生一個新的binlog日志
reset master;
#查看是否配置成功
show slave status\G;
Slave_IO_Running:Yes
此進程負責(zé)從服務(wù)器從主服務(wù)器上讀取binlog日志咖城,并寫入從服務(wù)器上的中繼日志。
Slave_SQL_Running:Yes
此進程負責(zé)讀取并且執(zhí)行中繼日志中的binlog日志呼奢,
注:以上兩個都為yes則表明成功