mysql主從複製


一、主從複製的工作原理
   mysql在master與slave之間實現整個複製的過程是由3個線程來完成的,其中兩個線程(SQL線程和IO線程)在slave端,另外一個線程(IO線程)在master端
   注:要實現mysql的複製必須首先打開master端的binary log(也就是二進制日誌),否則無法實現    
   mysql複製的基本過程如下:
       (1)slave上面的IO線程發起連接,並請求指定日誌文件的位置
       (2)master接收到來自slaveIO線程的請求後,通過負責複製的IO線程(即masterIO線程)根據這個請求信息指定日誌的位置,把這個信息返回給slave的IO線程(返回信息)
       (3)slave的IO線程接收到master端的返回信息之後,將日誌內容依次寫入slave端的relay log文件(mysql-relay-bin.xxx)當中,並且讀取到master端的bin-log文件和位置,記錄到master=info文件中,以便下一次能夠清楚地告訴master從哪個位置開始傳bin-log的內容
       (4)slave的SQL線程檢測:relay log增加內容後,馬上解析master二進制文件中的內容,並且執行裏面的query語句


二、具體操作

(1)在Master上操作
首先將bin-log日誌打開
其次將server-id設置爲1
將log-slave-updates給關閉掉

建立一個內部複製通信用戶
grant replication slave on *.* to 'admin'@'10.0.0.202' identified by '123456';
flush privileges;


(2)在Slave上操作
首先將bin-log日誌打開
其次將server-id設置爲2
將log-slave-updates打開
>stop slave;
>change master to  master_host='10.0.0.201', master_user='admin', master_password='123456', master_log_file='mysql-bin.000005', master_log_pos=578;
>start slave;
>show slave status\G;



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章