天天看點

mysql雙機熱備 不忽略異常_Mysql資料庫雙機熱備難點分析

小編在以前給大家介紹過關于Mysql 資料庫雙機熱備的配置方法有興趣的朋友參考一下,本節我們重點對其中的重要環節和需要注意的地方做了總結和分析。

一:介紹

mysql版本:5.7.20

第一個主服伺服器ip:192.168.71.139

第二個主服伺服器ip:192.168.71.141

二:配置

第一台主伺服器192.168.71.139

1:修改/etc/mysql/my.cnf 檔案,注意這裡的#是注釋,不要寫到配置檔案中

server-id = 141                                                    #伺服器id,不能重複,建議用ip後三位。

log-bin = mysql-bin

binlog-ignore-db = mysql,information_schema    #忽略寫入binlog日志的庫

auto-increment-increment = 2                             #字段變化增量值

auto-increment-offset = 1                                    #初始字段ID為1

slave-skip-errors = all                                          #忽略所有複制産生的錯誤

2:登陸mysql,建立允許其它伺服器複制的賬号

GRANT REPLICATION SLAVE ON *.* to ‘mysql賬号’@’%’ identified by ‘密碼’;

3:使用show master status查詢狀态

mysql雙機熱備 不忽略異常_Mysql資料庫雙機熱備難點分析

第二台主伺服器192.168.71.139

1:修改/etc/mysql/my.cnf 檔案,此處的server-id = 139,其它不變。

使用show master status查詢狀态

mysql雙機熱備 不忽略異常_Mysql資料庫雙機熱備難點分析

此時,需要重新啟動兩台伺服器的mysql

在192.168.71.141執行同步語句

master_log_file 值來源于139伺服器,執行show master status後的 File字段

master_log_file 值來源于139伺服器,執行show master status後的 Position字段

change master to master_host='192.168.71.139',master_user='master2',master_password='123456',master_log_file='mysql-bin.000002',master_log_pos=154;

在192.168.71.139執行同步語句

master_log_file 值來源于141伺服器,執行show master status後的 File字段

master_log_file 值來源于141伺服器,執行show master status後的 Position字段

change master to master_host='192.168.71.141',master_user='master1',master_password='123456',master_log_file='mysql-bin.000002', master_log_pos=154;

到此為此配置結束,重新開機mysql,登陸mysql,使用show slave statusG檢查配置狀态,發現Slave_IO無法啟動,出現如下錯誤

The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.

通過日志發現,master和slave的uuids重複了,因為這兩台伺服器是克隆的,是以需要修改/var/lib/mysql/auto.cnf

mysql雙機熱備 不忽略異常_Mysql資料庫雙機熱備難點分析

這裡修改我隻修改最後一個字母,因為修改多了,我mysql都無法啟動。修改完成,重新啟動mysql,再登陸mysql并執行show slave statusG,如下圖

mysql雙機熱備 不忽略異常_Mysql資料庫雙機熱備難點分析

三:測試

在任意一台伺服器執行如下sql

create table tab141(id int primary key);

create table tab139(id int primary key);

在139伺服器執行如下sql

insert into tab139 values(1);

在141伺服器執行如下sql

insert into tab141 values(2);

結果如下圖:

mysql雙機熱備 不忽略異常_Mysql資料庫雙機熱備難點分析

如果大家還有任何不明白的地方歡迎在下方的留言區域讨論。

聲明:本站所有文章,如無特殊說明或标注,均為本站原創釋出。任何個人或組織,在未征得本站同意時,禁止複制、盜用、采集、釋出本站内容到任何網站、書籍等各類媒體平台。如若本站内容侵犯了原著者的合法權益,可聯系我們進行處理。

收藏海報分享連結:http://wp1i.cn/archives/14584.html

分享到 :