mysql進階學習二之搭建主從

  前面說了主從複製的原理,現在我們搭建主從結構

1. 提前準備

  我準備了兩臺主機,主節點是遠程的centos7,從節點是本機windows

  主從複製的原理在上一篇已經說了:主節點中mysql創建一個用戶,專門提供給從節點去複製主節點的binlog文件,然後從節點的io線程將獲取到的文件內容複製到自己的中繼日誌中,最後從節點的SQL線程讀取中繼日誌,同步數據;

 

2. 配置linux主節點

  (1)登錄mysql,新建一個mysql賬號:GRANT REPLICATION SLAVE ON *.* to 'java'@'%' identified by '123456';  //這個賬號名是java,密碼是123456,所有遠程都可以通過這個賬號和密碼去讀主節點mysql中的binlog

  (2)修改my.cnf配置文件

    linux使用yum安裝的話,可以使用vim /etc/my.cnf 打開mysql的配置文件:

# id唯一
server-id=1 
# 開啓binlog,同時日誌文件名爲my_bin_log
log-bin=my_bin_log
# 主從複製需要同步到從節點的數據庫
binlog-do-db=mydb
binlog_format=STATEMENT

 

  binlog_format有三種:

    statement表示每一條增刪改的sql都會記錄到bin_log中,如果sql包含函數now(),那麼同步到從節點執行該sql會導致數據不一致;

    row表示記錄最終每一行數據的變化,同步到從節點中的數據肯定一致;

    mixed表示混合模式,sql中有函數就使用row模式,沒有函數就使用statement

 

  (3)查詢主節點的binlog文件名和position;

    爲什麼要知道這個position呢?因爲從節點就是從主節點的position這個位置開始同步的,主節點前面的其他操作都不會被同步,主從複製都搭建好了之後再創建數據庫!!!

  

  (4)重啓主節點mysql服務: systemctl restart mysqld

 

3  配置windows從節點

  (1)修改從節點的配置文件my.ini

# 從節點配置
server-id=2
# 從節點需要同步的庫,需要和主節點對應
replicate-do-db=mydb
# 開啓從節點中繼日誌
relay-log=mysql-relay

 

  (2)重啓從節點mysql服務:任務管理器->服務->mysql,右鍵,重新啓動

  (3)登錄mysql,配置從節點連接主節點,使用我們在主節點配置的用戶,還有binlog文件名以及數據庫

# 配置主節點的ip,用戶名,密碼,binlog文件名,position
change master to master_host='106.77.104.190',master_user='java',master_password='123456',master_log_file='my_bin_log.000001',master_log_pos=154; 

 

  (4)開啓從節點主從複製功能:start slave;

  (5)查看從節點mysql服務狀態:show slave status\G;

 

4.測試

  (1)主節點創建其他名字的數據庫,從節點不會同步

 

  (2)主節點創建mydb數據庫,從節點會自動同步

 

  (3)主節點在mydb庫中創建表,從節點會同步

 

  (4)主節點向mydb庫中插入數據,從節點會同步

  

  修改和刪除表中的數據,從節點也是會同步的,就不截圖了,有興趣的自己去試試;

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