前面說了主從復制的原理,現在我們搭建主從結構
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庫中插入資料,從節點會同步

修改和洗掉表中的資料,從節點也是會同步的,就不截圖了,有興趣的自己去試試;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/256607.html
標籤:Java
上一篇:微服務呼叫鏈日志追蹤分析
