天天看點

小白入門必知必會-MySQL雙主雙從安裝

一 MySQL雙主雙從基礎

1.1 介紹

一台主機Master1用于處理所有寫請求,它的從機Slave1和另一台主機Master2還有它的從機Slave2負責所有讀請求,當Master1主機當機後,Master2主機負責寫請求,Master1、Master2互為備機。

小白入門必知必會-MySQL雙主雙從安裝

1.2 伺服器規劃

編号 伺服器IP 安裝軟體 角色
1 192.168.0.99 MySQL-8.0.26 Master1
2 192.168.0.100 MySQL-8.0.26 Slave1
3 192.168.0.101 MySQL-8.0.26 Master2
4 192.168.0.102 MySQL-8.0.26 Slave2

二 MySQL雙主雙從安裝

2.1 關閉防火牆

四台伺服器分别執行

systemctl stop firewalld

systemctl disable firewalld

2.2 安裝資料庫環境

四台伺服器分别執行,之前已分享過MySQL的安裝文章,此處不再贅述。

2.3 Master1主庫配置

192.168.0.99伺服器操作

vim /etc/my.cnf

#mysql 服務ID,保證整個叢集環境中唯一,取值範圍:1 – 2^32-1,預設為1

server-id=1

#指定同步的資料庫

binlog-do-db=db01

binlog-do-db=db02

binlog-do-db=db03

# 在作為從資料庫的時候,有寫入操作也要更新二進制日志檔案

log-slave-updates

重新開機mysql

systemctl restart mysqld

2.4 Master2主庫配置

192.168.0.101伺服器操作

vim /etc/my.cnf

#mysql 服務ID,保證整個叢集環境中唯一,取值範圍:1 – 2^32-1,預設為1

server-id=3

#指定同步的資料庫

binlog-do-db=db01

binlog-do-db=db02

binlog-do-db=db03

# 在作為從資料庫的時候,有寫入操作也要更新二進制日志檔案

log-slave-updates

重新開機mysql

systemctl restart mysqld

2.5 兩台主庫建立賬戶并授權

192.168.0.99和192.168.0.101分别執行

#建立test使用者,并設定密碼,該使用者可在任意主機連接配接該MySQL服務

create user 'test'@'%' identified with mysql_native_password by 'Test@123456';

#為 'test'@'%' 使用者配置設定主從複制權限

grant replication slave on *.* to 'test'@'%';

通過指令檢視兩台主庫的二進制日志坐标

小白入門必知必會-MySQL雙主雙從安裝

2.6 Slave1從庫配置

192.168.0.100伺服器操作

vim /etc/my.cnf

#mysql 服務ID,保證整個叢集環境中唯一,取值範圍:1 – 232-1,預設為1

server-id=2

重新開機mysql

systemctl restart mysqld

2.7 Slave2從庫配置

192.168.0.102伺服器操作

vim /etc/my.cnf

#mysql 服務ID,保證整個叢集環境中唯一,取值範圍:1 – 232-1,預設為1

server-id=4

重新開機mysql

2.8 兩台從庫分别設定關聯的主庫

需要注意Slave1對應的是Master1,Slave2對應的是Master2。

192.168.0.100資料庫執行如下sql:

change replication source to source_host='192.168.0.99',source_user='test',source_password='Test@123456',source_log_file='binlog.000002',source_log_pos=663;

start slave;

show slave status\G;

小白入門必知必會-MySQL雙主雙從安裝

192.168.0.102資料庫執行如下sql:

change replication source to source_host='192.168.0.101',source_user='test',source_password='Test@123456',source_log_file='binlog.000002',source_log_pos=663;

start slave;

show slave status\G;

小白入門必知必會-MySQL雙主雙從安裝

2.9 兩台主庫互相複制

Master2複制Master1,Master1複制Master2

Master1:192.168.0.99執行如下SQL:

change replication source to source_host='192.168.0.101',source_user='test',source_password='Test@123456',source_log_file='binlog.000002',source_log_pos=663;

start slave;

show slave status\G;

小白入門必知必會-MySQL雙主雙從安裝

Master2:192.168.0.101執行如下SQL:

change replication source to source_host='192.168.0.99',source_user='test',source_password='Test@123456',source_log_file='binlog.000002',source_log_pos=663;

start slave;

show slave status\G;

小白入門必知必會-MySQL雙主雙從安裝

2.10 測試

分别在兩台主庫Master1、Master2上執行DDL、DML語句,檢視涉及到的資料庫伺服器的資料同步情況。

在Master1建立資料庫db01,發現其它三台資料庫都會同步

create database db01;

在Master1建立表,發現其它三台資料庫也會同步

use db01;

create table tb_user(

id int(11) not null,

name varchar(50) not null,

sex varchar(1),

primary key (id)

)engine=innodb default charset=utf8;

在Master2插入資料,發現其它三台資料庫也會同步

insert into tb_user(id,name,sex) values(1,'Cat','1');

insert into tb_user(id,name,sex) values(2,'Lucy','0');

insert into tb_user(id,name,sex) values(3,'Candy','1');

至此,MySQL雙主雙從安裝完成,感謝觀看。

繼續閱讀