Mysql主從複製配置

Mysql主從複製此處採用一臺windows上面的mysql(主庫)與一臺linux上的mysql(從庫)進行主從配置。
複製的基本原理:
    slave會從master讀取binlog來進行數據同步。
原理圖:


MySQL複製過程分成三步:
1 master將改變記錄到二進制日誌(binary log)。這些記錄過程叫做二進制日誌事件,binary log events;
2 slave將master的binary log events拷貝到它的中繼日誌(relay log);
3 slave重做中繼日誌中的事件,將改變應用到自己的數據庫中。 MySQL複製是異步的且串行化的
複製的基本原則:

每個slave只有一個master
每個slave只能有一個唯一的服務器ID
每個master可以有多個salve

複製的最大問題:
    延時
解決方案:

    參考:https://www.cnblogs.com/phpper/p/8904169.html
配置前提:

   mysql版本一致且後臺以服務運行
  主從都配置在[mysqld]結點下,都是小寫

1.主機修改my.ini配置文件:

說明:

1.[必須]主服務器唯一ID
  server-id=1
2.[必須]啓用二進制日誌
  log-bin=自己本地的路徑/data/mysqlbin
  log-bin=D:/mysql/MySQLServer5.5/data/mysqlbin
3.[可選]啓用錯誤日誌
  log-err=自己本地的路徑/data/mysqlerr
  log-err=D:/mysql/MySQLServer5.5/data/mysqlerr
4.[可選]根目錄
  basedir="自己本地路徑"
  basedir="D:/mysql/MySQLServer5.5/"
4.[可選]臨時目錄
  tmpdir="自己本地路徑"
  tmpdir="D:/mysql/MySQLServer5.5/"
6.[可選]數據目錄
  datadir="自己本地路徑/Data/"
  datadir="D:/mysql/MySQLServer5.5/Data/"
7.read-only=0
  主機,讀寫都可以
8.[可選]設置不要複製的數據庫
  binlog-ignore-db=mysql
9.[可選]設置需要複製的數據庫
    binlog-do-db=需要複製的主數據庫名字

2.從機配置文件修改my.cnf的[mysqld]欄位下:
 

server-id = 2  確保唯一性
relay-log=mysql-relay

注意:

因修改過配置文件,請主機+從機都重啓後臺mysql服務
主機從機都關閉防火牆
  windows手動關閉
  關閉虛擬機linux防火牆    service iptables stop

3.在Windows主機上建立帳戶並授權slave:
 

1.遠程連接配置
GRANT REPLICATION SLAVE ON *.* TO 'zhangsan'@'從機器數據庫IP' IDENTIFIED BY '123456';
flush privileges;
2.show master status; 記錄下File和Position的值
執行完此步驟後不要再操作主服務器MYSQL,防止主服務器狀態值變化


4.在Linux從機上配置需要複製的主機

執行 同步主機

CHANGE MASTER TO MASTER_HOST='主機ip地址',
MASTER_USER='xx',
MASTER_PASSWORD='123456',
MASTER_LOG_FILE='mysqlbin.具體數字',MASTER_LOG_POS=具體值;  此處的數據是剛纔記錄下的數據

5.啓動從服務器複製功能
 

start slave;

6.查看是否配置成功
 

show slave status\G


show slave status\G
     下面兩個參數都是Yes,則說明主從配置成功!
     Slave_IO_Running: Yes
     Slave_SQL_Running: Yes
注意:如果配置失敗需要刪除相關的同步與日誌數據文件,

如何停止從服務複製功能

 stop slave;

 

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