MySQL5.7主從復制是一種常用的數據庫備份方式,它通過在主庫上對數據進行增刪改操作,然后將這些操作記錄在二進制日志中,再將這些日志傳輸到從庫上,從庫通過應用這些日志來實現數據的同步。下面我們來看一下MySQL5.7主從復制的原理:
主庫: CHANGE MASTER TO MASTER_HOST='192.168.1.100', MASTER_USER='repl', MASTER_PASSWORD='repl', MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=157; 從庫: START SLAVE;
主庫會將二進制日志傳輸到從庫,并在從庫上執行。從庫會有一個io線程,它會連接主庫并請求將二進制日志復制到從庫上。主庫會將二進制日志傳輸到從庫并記錄最新的復制坐標(位點)。
從庫會有一個sql線程,它會從io線程收到的二進制日志中讀取內容并在從庫上執行。執行完成后,從庫會記錄最新的復制坐標(位點)。如果主庫宕機或者出現網絡故障等問題,從庫會不斷地嘗試重新連接主庫并恢復復制過程。
需要注意的是,主從復制的過程中可能會出現一些問題,比如時區不一致、自增id重復等問題,需要在配置、使用過程中加以注意。