您好,登錄后才能下訂單哦!
本文以MYSQL數據庫的主從復制為例,為大家分析MYSQL數據庫的主從復制的基本原理和相關配置,閱讀完整文相信大家對MYSQL數據庫的主從復制有了一定的認識。
MySQL復制過程分成三步:
binary log
)。這些記錄過程叫做二進制日志事件,binary log events
;binary log events
拷貝到它的中繼日志(relay log);簡單來說: slave會從master讀取binlog來進行數據同步
Mysql的復制(replication)是一個異步的復制。
實現整個復制操作主要由三個進程完成的,其中兩個進程在Slave(Sql進程和IO進程),另外一個進程在 Master(IO進程)上。
要實施復制,首先必須打開Master端的binary log(bin-log)
功能,否則無法實現。
因為整個復制過程實際上就是Slave從Master端獲取該日志然后再在自己身上完全順序的執行日志中所記錄的各種操作。
復制的詳細過程:
(1)Slave上面的IO進程連接上Master,并請求從指定日志文件的指定位置(或者從最開始的日志)之后的日志內容;
(2)Master接收到來自Slave的IO進程的請求后,通過負責復制的IO進程根據請求信息讀取制定日志指定位置之后的日志信息,返回給Slave 的IO進程。返回信息中除了日志所包含的信息之外,還包括本次返回的信息已經到Master端的
bin-log
文件的名稱以及bin-log
的位置;(3)Slave的IO進程接收到信息后,將接收到的日志內容依次添加到Slave端的
relay-log
文件的最末端,并將讀取到的Master端的 bin-log的文件名和位置記錄到master-info
文件中,以便在下一次讀取的時候能夠清楚的高速Master“我需要從某個bin-log的哪個位置開始往后的日志內容,請發給我”;(4)Slave的Sql進程檢測到relay-log中新增加了內容后,會馬上解析relay-log的內容成為在Master端真實執行時候的那些可執行的內容,并在自身執行。
原則:
演示主機為Windows
(配置文件為my.ini
文件),從機為Linux
(配置文件為my.cnf
)
log-bin=自己本地的路徑/data/mysqlbin
。log-bin=D:/devSoft/MySQLServer5.5/data/mysqlbin
。log-err=自己本地的路徑/data/mysqlerr
。log-err=D:/devSoft/MySQLServer5.5/data/mysqlerr
。basedir="自己本地路徑"
。basedir="D:/devSoft/MySQLServer5.5/"
。tmpdir="自己本地路徑"
。tmpdir="D:/devSoft/MySQLServer5.5/"
。datadir="自己本地路徑/Data/"
。datadir="D:/devSoft/MySQLServer5.5/Data/"
。binlog-ignore-db=mysql
。binlog-do-db=需要復制的主數據庫名字
。service iptables stop
;GRANT REPLICATION SLAVE ON *.* TO 'zhangsan'@'從機器數據庫IP' IDENTIFIED BY '123456';
。flush privileges;
。show master status;
CHANGE MASTER TO MASTER_HOST='主機IP',MASTER_USER='zhangsan',MASTER_PASSWORD='123456',MASTER_LOG_FILE='File名字',MASTER_LOG_POS=Position數字;
start slave;
。Slave_IO_Running: Yes
。Slave_SQL_Running: Yes
。CHANGE MASTER TO MASTER_HOST='192.168.124.3',
MASTER_USER='zhangsan',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysqlbin.具體數字',MASTER_LOG_POS=具體值;
在linux
下面輸入stop slave;
。
看完上述內容,你們對MYSQL數據庫的主從復制有進一步的了解嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。