天天看點

mysql 主從複制_MySQL之主從複制

複制的基本原理

(1)slave會從master讀取binlog來進行資料同步

(2)三步驟+原理圖

mysql 主從複制_MySQL之主從複制

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配置檔案

mysql 主從複制_MySQL之主從複制

主伺服器唯一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

mysql 主從複制_MySQL之主從複制
  • 從機配置檔案修改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’;

mysql 主從複制_MySQL之主從複制
  • 查詢master的狀态,并記錄下File和Position的值

#查詢master的狀态

show master status;

mysql 主從複制_MySQL之主從複制

執行完此步驟後不要再操作主伺服器MYSQL,防止主伺服器狀态值變化

  • 在Linux從機上配置需要複制的主機

#查詢master的狀态

CHANGE MASTER TO MASTER_HOST=’主機IP’,MASTER_USER=’建立使用者名’,MASTER_PASSWORD=’建立的密碼’,

MASTER_LOG_FILE=’File名字’,MASTER_LOG_POS=Position數字;

mysql 主從複制_MySQL之主從複制
  • 啟動從伺服器複制功能

start slave;

show slave statusG;

mysql 主從複制_MySQL之主從複制

下面兩個參數都是Yes,則說明主從配置成功!

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

  • 主機建立庫、建立表、insert記錄,從機複制
  • 如何停止從服務複制功能

stop slave;

繼續閱讀