MySQL主從復(fù)制demo

服務(wù)器:主服務(wù)器ip 172.31.242.249 、從服務(wù)器ip 172.31.242.250 兩臺服務(wù)器的MySQL版本保持一致

原理:MySQL要做到主從復(fù)制,其實依靠的是二進(jìn)制日志,即:假設(shè)主服務(wù)器叫A,從服務(wù)器叫B;主從復(fù)制就是 B跟著A學(xué),A做什么,B就做什么。那么B怎么同步A的動作呢?現(xiàn)在A有一個日志功能,把自己所做的增刪改查的動作全都記錄在日志中,B只需要拿到這份日志,照著日志上面的動作施加到自己身上就可以了。

1、首先修改mysql的配置文件,使其支持二進(jìn)制日志功能

打開主服務(wù)器的mysql配置文件:my.conf

vi /etc/my.cnf  

加入如下三行代碼:

#將mysql二進(jìn)制日志取名為mysql-bin
log-bin=/var/lib/mysql/bin-log/mysql-bin    
#二進(jìn)制日志的格式,有三種:statement/row/mixed,具體分別不多做解釋,這里使用mixed
binlog_format=mixed
#為服務(wù)器設(shè)置一個獨一無二的id便于區(qū)分,這里使用ip地址的最后一位充當(dāng)server-id
server-id=249

配置完成 :wq 保存,重啟MySQL

 systemctl restart mysqld.serivce

同樣的,進(jìn)入從服務(wù)器,配置從服務(wù)器的my.cnf,重復(fù)步驟1即可。

唯一的區(qū)別是,server-id要改成從服務(wù)器的ip尾位,即server-id=250;其他兩項是一樣的,保存,并重啟MySQL;

2、在主服務(wù)器上為從服務(wù)器分配一個賬號

進(jìn)入主服務(wù)器的mysql界面,

 mysql -u root -proot     #我這里mysql賬號是root,密碼是root

在mysql操作界面下,輸入下面一行命令:

GRANT replication slave ON *.* TO 'slave'@'%' IDENTIFIED BY 'root'; 

3、查看主服務(wù)器BIN日志的信息

進(jìn)入主服務(wù)器的mysql界面,

 show master status    #記錄下file、position這兩個值

進(jìn)入從服務(wù)器mysql

 mysql -u root -proot

關(guān)閉slave(如果你以前配置過主從的話,一定要先關(guān)閉)

stop slave;

4、開始配置主從同步

從服務(wù)器MySQL命令行下輸入下面代碼即可:

CHANGE MASTER TO
MASTER_HOST="172.31.242.249",
MASTER_USER="root",
MASTER_PASSWORD="root",
MASTER_LOG_FILE="mysql-bin00001",     #show master status 中的file值
MASTER_LOG_POS=250;                   #show master status 中的position值

備注:
MASTER_HOST : 設(shè)置要連接的主服務(wù)器的ip地址
MASTER_USER : 設(shè)置要連接的主服務(wù)器的用戶名
MASTER_PASSWORD : 設(shè)置要連接的主服務(wù)器的密碼
MASTER_LOG_FILE : 設(shè)置要連接的主服務(wù)器的bin日志的日志名稱,即第3步得到的信息
MASTER_LOG_POS : 設(shè)置要連接的主服務(wù)器的bin日志的記錄位置,即第3步得到的信息(這里注意,最后一項不需要加引號。)

啟動從服務(wù)器開始復(fù)制:

 start slave;

5、查看是否配置成功

show slave status \G    #\G可以讓執(zhí)行結(jié)果格式化,代替;號是個不錯的選擇
命令執(zhí)行結(jié)果

Slave_IO_Running、Slave_SQL_Running均為Yes代表成功

特別強(qiáng)調(diào)。

MySQL的主從復(fù)制無法保證100%永遠(yuǎn)不出問題,主從一旦斷開,程序無法及時發(fā)現(xiàn)將是巨大災(zāi)難,強(qiáng)烈建議各位程序員對從服務(wù)器加監(jiān)聽(死循環(huán)show slave status),一旦發(fā)現(xiàn)異常,直接將從切換至主,保證數(shù)據(jù)的一致性。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容