windows10系統中實現mysql主從複製(一主多從)

主從複製應用場景

MySQL 主從複製集羣功能使得 MySQL 數據庫支持大規模高併發讀寫成爲可能,同時有效地保護了物理服務器宕機場景的數據備份。

1、從服務器作爲主服務器的實時數據備份。

2、主從服務器實現讀寫分離,從服務器實現負載均衡。

3、把多個從服務器根據業務重要性進行拆分訪問。

主從複製實戰(一主多從)

這裏準備三臺主機,沒有條件,可以用虛擬機代替

主服務器:192.168.1.235

從服務器1:192.168.127.129

從服務器2:192.168.127.130

主機之間相互能ping的通,在三臺主機上面安裝各自mysql,我這裏用的是5.7版本

主服務器配置:

找到mysql配置文件,可以在【服務】裏面找到mysql配置文件的位置

 打開配置文件,在【mysqld】節點下添加

#唯一,要與從機的不同
server-id = 1
# Binary Logging.
#開啓二進制日誌
log-bin= mysql-bin  

注意server-id要唯一。

命令行登錄mysql,mysql -uroot -proot

1、分別給兩個從服務器創建用戶:

CREATE USER '使用名'@'備機IP地址' IDENTIFIED BY '密碼';#創建用戶

2、分別給兩個從服務器用戶賦權

GRANT REPLICATION SLAVE ON *.* TO '使用名'@'備機IP地址';#分配權限

3、刷新權限

flush privileges

4、重啓mysql,登錄mysql,輸入show master status;

5、爲防止position一直變動,此時我們給主服務器加上只讀鎖

flush table with read lock;

從服務器配置:

這裏只配置一個,另一個也是一樣的配置

1、同主服務器一樣,在mysql配置文件中,加入

#唯一,要與主機或其他從機的不同
server-id = 2
# Binary Logging.
#開啓二進制日誌
log-bin= mysql-bin  

2、重啓mysql服務器,登錄mysql服務器,mysql -uroot -proot


CHANGE MASTER TO 
 MASTER_HOST='192.168.1.235', #主機的IP
       MASTER_USER='slave1', #之前創建的那個使用名
       MASTER_PASSWORD='slave1', #密碼
       MASTER_LOG_FILE='mysql-bin.000007', #這是主庫中show master status;File下的那個值
       MASTER_LOG_POS=154;#這是主庫Position下的那個值

開啓slave同步進程

start slave;

查看slave狀態

show slave status\G

當Slave_IO_Running和Slave_SQL_Running都yes時,主從複製創建成功。

主服務器給表解鎖:unlock tables

在主服務器創建數據庫:

庫名:123,建表:test,插入數據

從服務器1:192.168.1.129

從服務器2:192.168.1.130

到此,mysql一主多從已經搭建完畢

常見錯誤:

1、出現Slave_IO_Running:No:https://www.jb51.net/article/27220.htm

2、出現Slave_SQL_Runing:No:https://blog.csdn.net/heng_ji/article/details/51013710

3、當主服務器中有個庫從服務器從來沒有,如果主服務器操作之後,從服務器就會存在一個或多個事務需要手動去跳過

slave stop;
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1        #跳過一個事務
slave start

不然就會在之後的同步過程中會同步失敗,想要通過配置,自動跳過這些錯誤的事務,在mysql的配置文件【mysqld】節點中加入

slave-skip-errors=all

 

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