(1)slave會從master讀取binlog來進行資料同步
(2)三步驟+原理圖

MySQL複制過程分成三步:
master将改變記錄到二進制日志(binary log)。這些記錄過程叫做二進制日志事件,binary log events;
slave将master的binary log events拷貝到它的中繼日志(relay log);
slave重做中繼日志中的事件,将改變應用到自己的資料庫中。 MySQL複制是異步的且串行化的
複制的基本原則(1)每個slave隻有一個master
(2)每個slave隻能有一個唯一的伺服器ID
(3)每個master可以有多個salve
複制的最大問題因為發生多次IO,存在延時問題
一主一從常見配置1、mysql版本一緻且背景以服務運作
2、主從都配置在[mysqld]結點下,都是小寫
主機修改my.ini配置檔案
主伺服器唯一ID
server-id=1
啟用二進制日志
log-bin=自己本地的路徑/data/mysqlbin
log-bin=D:/devSoft/MySQLServer5.5/data/mysqlbin
設定不要複制的資料庫
binlog-ignore-db=mysql
設定需要複制的資料庫
binlog-do-db=需要複制的主資料庫名字
設定logbin格式
binlog_format=STATEMENT(預設)
mysql主從複制起始時,從機不繼承主機資料
- logbin格式
binlog_format=STATEMENT(預設)
binlog_format=ROW
binlog_format=MIXED
- 從機配置檔案修改my.cnf的[mysqld]欄位下
#從機服務id
server-id = 2
#注意my.cnf 中有server-id = 1
#設定中繼日志
relay-log=mysql-relay
- 因修改過配置檔案,請主機+從機都重新開機背景mysql服務
- 主機從機都關閉防火牆、安全工具(騰訊管家等)
- 在Windows主機上建立帳戶并授權slave
#建立使用者,并授權
GRANT REPLICATION SLAVE ON *.* TO ‘備份賬号’@’從機器資料庫IP’ IDENTIFIED BY ‘123456’;
- 查詢master的狀态,并記錄下File和Position的值
#查詢master的狀态
show master status;
執行完此步驟後不要再操作主伺服器MYSQL,防止主伺服器狀态值變化
- 在Linux從機上配置需要複制的主機
#查詢master的狀态
CHANGE MASTER TO MASTER_HOST=’主機IP’,MASTER_USER=’建立使用者名’,MASTER_PASSWORD=’建立的密碼’,
MASTER_LOG_FILE=’File名字’,MASTER_LOG_POS=Position數字;
- 啟動從伺服器複制功能
start slave;
show slave statusG;
下面兩個參數都是Yes,則說明主從配置成功!
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
- 主機建立庫、建立表、insert記錄,從機複制
- 如何停止從服務複制功能
stop slave;