MySQL High Availability總結(二) 配置Master

MySQL或者MariaDB實現高可用性最主要的就是主(Master)從(Slave)複製(Replaction)技術。一般主下掛多個從,根據場景分發請求到從上減少主庫的壓力或者起到災備數據的功能(通過從可以對數據不進行干涉來分析數據,或使用從進行數據備份),當然Replaction技術還有很多用處。而且Replaction也擁有很多配置方案,這裏先暫時只介紹最簡單的配置方法。後面會一步一步介紹MariaDB複製和高可用的更深入的技術。
配置Master其實很簡單,分如下步驟:
1、 配置二進制日誌以及日誌索引。
2、 配置服務器id
3、 創建複製賬戶,並且授權
4、 啓動Master
在詳細說明覆制技術之前,請確保擁有兩臺或兩臺以上的帶有MariaDB服務的設備(包含一個主和一個或多個以上的從)。這裏我只使用了一臺服務器上跑多個實例的方式配置Replaction。
下面詳細說明這四個步驟:
1、 編輯MariaDB的配置文件,在這裏我的master配置文件命名爲:my_master_3310.cnf。由於我在一臺服務器中使用多個實例,所以master端口配置爲3310。同樣socket文件以及pid文件都重新制定,socket指定爲:/data/var/mariadb/mariadb_3310.sock,pid指定爲:/data/var/mariadb/mariadb_3310.pid。
在Replaction技術中最重要的就是二進制文件。二進制文件包含了除了where條件以外的DDL和DML語句的執行內容。主要作用:記錄語句執行過程方便恢復、Replaction時主從同步等。詳細的說明在後續小節中。
在配置文件的[mysqld]中加入log-bin=master-bin,log-bin指定了二進制日誌文件的名稱的前綴。二進制日誌文件會根據大小分成多分,分出的文件都是以log-bin指定的值加上.xxxx,如master-bin.000001、master-bin.000002等。
log-bin-index描述了二進制日誌文件的索引文件,索引文件包含了所有二進制日誌文件名,方便數據庫去快速讀取下一個日誌文件。
這裏寫圖片描述
2、 配置[mysqld]下的server-id=1。server-id在複製技術中起到了很重要的作用,server-id在複製鏈中是不可以重複的,在主從同步過程中會傳輸server-id,如果出現兩臺server-id相同的服務器,在連接到master上時,那其中一臺已經連接的就會被踢掉。而master的server-id一般都爲1。server-id必須爲1到2的32次冪-1之間的一個正整數值,並且注意後續的slave配置中的server-id不要與master這裏的server-id相同。
這裏寫圖片描述
配置了log-bin、log-bin-index、server-id後保存退出。
3、 爲了安全起見,我們不應該使用root用戶或者線上應用連接數據庫時使用的用戶當做複製用戶,所以需要創建一個新的專門用於複製的用戶(當然這個用戶權限也挺大的)。
首先創建用戶,執行:

crete user rep_user@’%’ identified by ‘mysql123’;

創建一個用於複製的用戶rep_user,允許任意主機登陸,鑑權密碼爲mysql123。
這裏寫圖片描述
創建用戶完成後,需要對該複製用戶授權。執行:

grant replication slave,reload,create user,super on *.* to rep_user@’%’with grant option; 

爲用戶rep_user@’%’賦予複製從、重新加載、創建用戶、允許終止任何查詢以及授權操作權限。這些權限都是主從複製是必須擁有的,由於該用戶權限比較大,建議把該用戶的Host改爲只允許內網或者固定的複製機器才能登陸。
這裏寫圖片描述
到此爲止,master就配置完了,很簡單。下面需要啓動master。
4、 執行啓動命令:

sudo /srv/mariadb/bin/mysqld_safe –--default-file=/data/config/mariadb_config/my_master_3310.cnf &

mysqld_safe方式啓動更爲安全些,mysqld_safe主要做了如下操作:

  • 檢查系統和選項。
  • 檢查MyISAM表。
  • 保持MySQL服務器窗口。
  • 啓動並監視mysqld,如果因錯誤終止則重啓。
  • 將mysqld的錯誤消息發送到數據目錄中的host_name.err 文件。
  • 將mysqld_safe的屏幕輸出發送到數據目錄中的host_name.safe文件。
  • –default-file參數列表內容給出了數據庫啓動時默認使用哪個配置文件。 &讓腳本

在後臺運行。

master到此就配置完成了,現在可以連接上去看看。執行:

mysql –u root –p –S /data/var/mariadb/mariadb_3310.scok

這裏需要注意一下通過-S參數指定master的sock文件。
這裏寫圖片描述

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