Spring實現讀寫分離(一)--MySQL實現主從複製

Spring實現讀寫分離(一)–MySQL實現主從複製

標籤(空格分隔): 淘淘商城


原理

mysql主(master)從(slave)複製原理
1、master將數據改變記錄到二進制日誌(binary log)中,也即是配置文件文件log-bin指定的文件(二進制日誌時間 binary log events)
2、slave將master的binary log events 拷貝到它的中繼日誌(relay log)
3、slave重做中繼日誌時間,將改變反應到自己的數據中
如下圖所示:
這裏寫圖片描述

主從配置

注意點

1、主DB server 和從DB server數據庫的版本必須保持一致
2、主DB server 和從DB server 數據庫數據一致
3、主DB server開啓二進制日誌,主DB server 和 從DB server的server_id都必須保持唯一

配置

主庫配置

修改${MYSQL_HOME}\data\my.init文件

#開啓主從複製,主庫的配置
log-bin = logs\mysql3306-bin
#指定主庫serverid
server-id=101
#指定同步的數據庫名,如果不指定則同步全部數據庫
binlog-do-db=mybatis_db

執行SQL語句查詢狀態:
SHOW MASTER STATUS
這裏寫圖片描述
需要記錄下Position值,需要在從庫中設置同步起始值
在主庫中創建一個同步用戶

#授權用戶slave01使用123456密碼登錄mysql
grant replication slave on *.* to 'slave01'@'127.0.0.1' identified by '123456';
flush privileges;

從庫配置

修改${MYSQL_HOME}\data\my.init文件

#指定serverid,只要不重複即可,從庫也只有這一個配置,其他都在SQL語句中操作
server-id=102

配置同步信息SQL

CHANGE MASTER TO
 master_host='127.0.0.1',
 master_user='slave01',
 master_password='123456',
 master_port=3306,
 master_log_file='mysql3306-bin.000006',
 master_log_pos=1120;

以上具體的值均從主配置中得到

啓動從節點,並查看主從同步信息:

#啓動slave同步
START SLAVE;

#查看同步狀態
SHOW SLAVE STATUS;

這裏寫圖片描述

如果上面的配置中,出現不一致的情況,則可以查看從節點的錯誤日誌信息。
例如:由於一般主從庫在安裝的時候都是拷貝過來的,需要更改uuid信息
${MYSQL_HOME}\data\data\auto.cfg.如果這個文件的值都是一致的,主從配置也會失敗

[auto]
server-uuid=d71ec2ee-65ba-11e5-a4e3-000c29deb96e
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章