1. 程式人生 > 資料庫 >詳解mysql叢集:一主多從架構實現

詳解mysql叢集:一主多從架構實現

實驗環境:

1、三臺CentOS 7 伺服器

2、mysql5.7.26(三臺都通過yum安裝)

伺服器列表

7.100.222.111 master
47.103.211.5 slave1
47.103.98.221 slave2

如果還沒安裝mysql請看安裝教程:mysql安裝

一、概述:

架構圖:

此種架構,一般初創企業比較常用,也便於後面步步的擴充套件

特點:

1、可以緩解讀的壓力。

2、成本低,佈署快速、方便

3、讀寫分離

4、還能通過及時增加從庫來減少讀庫壓力

5、主庫單點故障

6、資料一致性問題(同步延遲造成)

7、一但主機宕機就不可以進行寫操作

二、搭建叢集

1、修改配置檔案

分別在三臺伺服器中使用如下命令修改配置檔案

$ vim /etc/my.cnf

分別向三臺伺服器的/etc/my.cnf mysql配置檔案新增如下內容:

masetr slave1 slave2

server-id=1

#主庫開啟binlog日誌

log-bin=/var/lib/mysql/mysql-bin

server-id=2 server-id=3

2、在主庫建立複製使用者

在mysql命令下輸入如下命令建立一個使用者供從庫(slave)複製主庫(master)

mysql> grant replication slave on *.* to 'test'@'%' identified by '123456';
Query OK,0 rows affected (0.00 sec)
 
mysql> flush privileges;
Query OK,0 rows affected (0.00 sec)

3、從庫關聯主庫

使用一下命令檢視主庫(master)的狀態

mysql> show master status;

輸出以下資訊,當然你的可以和我的不一樣

mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File       | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000002 | 5141037 |       |         |          |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

可以看到以上結果,這兒只需要看 File 和 Position,其它的兩個分別是白名單和黑名單,意思為同步哪幾個資料庫和不同步哪幾個資料庫,可自行根據需求進行設定。記錄以上前兩個欄位資訊後()。

分別在兩臺從庫(slave)上操作如下命令:

mysql> change master to master_host='47.100.222.111',master_port=3306,master_user='test',master_password='123456',master_log_file='mysql-bin.000002',master_log_pos=5141037;
 
mysql> flush privileges;
 
mysql> slave start;

執行完畢後,在從庫上繼續執行如下語句:

mysql> show slave status\G;

輸出如下資訊:

*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 47.100.225.121
Master_User: helper
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000002
Read_Master_Log_Pos: 5141037
Relay_Log_File: slave1-relay-bin.000003
Relay_Log_Pos: 5140628
Relay_Master_Log_File: mysql-bin.000002
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
----------以下省略

如果 Slave_IO_Running: 和Slave_SQL_Running: 都為YES那證明配置已經成功。

到此一主二從搭建完成,一主多從也是類似的安裝。你可以在主庫上建立一個數據庫或者一張表,從庫都會去複製。

以上所述是小編給大家介紹的mysql叢集一主多從架構實現詳解整合,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!