|
其次要禁用SElinux、防火牆配置、禁用AppArmor,不過這些在Ubuntu14.04下都是不用配置的,所以就不詳細說明配置步驟。 開始安裝
' ^& c# F/ q, d下面就是最實用的安裝過程,親測有效!. M8 k" C8 H* s3 {1 o; a4 }2 g# T
1.安裝需要的源 apt-get install software-properties-commonapt-key adv --keyserver keyserver.ubuntu.com --recv BC19DDBA4 Q% m9 c4 O% m' Y$ a
然後建立建立一個檔案,/etc/apt/sources.list.d/galera.list,galera.list裡面的內容為: deb http://releases.galeracluster.com/ubuntu trusty main
9 P6 z6 _7 B9 V2 S: g* q接下來就更新一下: apt-get update
6 g5 ?* n% M% l) {. j; Z2 c源配置好了之後,接下來就該安裝檔案了,執行: apt-get install galera-3 galera-arbitrator-3 mysql-wsrep-5.6
; o! j& `8 E- l- R5 j' { f安裝完成之後,在每一個節點上啟動Mysql: service mysql start
+ ~4 {0 |* j9 D) y9 C C然後,驗證節點之間是否能互相ping通: root@node1:~#ping 192.168.1.175root@node1:~#ping 192.168.1.176root@node2:~#ping 192.168.1.174root@node2:~#ping 192.168.1.176root@node3:~#ping 192.168.1.174root@node3:~#ping 192.168.1.175
1 H3 x% |& S5 l" t7 H8 ?, M安裝好了,那麼下面要來修改Mysql的配置檔案了,開啟/etc/mysql/my.cnf,修改bind-address 127.0.0.1為: bind-address = 0.0.0.0
7 ^6 i$ F8 C( ?6 ~) I7 G. o表示任何主機可以訪問。重啟Mysql: service mysql restart
2 K3 z4 G* @# r7 V7 t接下來,試著在任何一個節點登入其他節點,比如Node1上執行: mysql -h 192.168.1.175 -u root -p3 e5 n, Y' C x5 t
此時會讓你輸入Mysql密碼,說明Node2上的Mysql伺服器是在監聽的,但此時輸入密碼是登入不成功的,後面會解決這個!7 P2 V# N3 } O ]4 O
接下來,我們還要對Mysql配置檔案進一步配置: 在 Node1 上的/etc/mysql/my.cnf裡面的[mysql]下面新增上:binlog_format=ROWdefault-storage-engine=innodbinnodb_autoinc_lock_mode=2wsrep_provider=/usr/lib/libgalera_smm.sowsrep_provider_options="gcache.size=300M; gcache.page_size=1G"wsrep_cluster_name="galeracluster"wsrep_cluster_address="gcomm://"wsrep_sst_method=rsyncwsrep_sst_auth=wsrep:password 在 Node2 上的/etc/mysql/my.cnf裡面的[mysql]下面新增上:binlog_format=ROWdefault-storage-engine=innodbinnodb_autoinc_lock_mode=2wsrep_provider=/usr/lib/libgalera_smm.sowsrep_provider_options="gcache.size=300M; gcache.page_size=1G"wsrep_cluster_name="galeracluster"wsrep_cluster_address="gcomm://192.168.1.174"wsrep_sst_method=rsyncwsrep_sst_auth=wsrep:password 在 Node3 上的/etc/mysql/my.cnf裡面的[mysql]下面新增上:binlog_format=ROWdefault-storage-engine=innodbinnodb_autoinc_lock_mode=2wsrep_provider=/usr/lib/libgalera_smm.sowsrep_provider_options="gcache.size=300M; gcache.page_size=1G"wsrep_cluster_name="galeracluster"wsrep_cluster_address="gcomm://192.168.1.174"wsrep_sst_method=rsyncwsrep_sst_auth=wsrep:password _& @( o: N }6 @
以上三個節點的配置注意以下幾點:
* y5 D$ u" @7 F; ]: f& M1. default_storage_engine這一行是必須的,因為Galera只能複製innodb的資料庫
! [3 Q# e# A, s' d4 r! ]( n# o5 Y" W$ V2. wsrep_cluster_name這一行指定了叢集的名稱,叢集中的每個節點上都必須設定為一樣
( r! [2 i3 T2 B9 d' S$ F3. 作為叢集中第一個啟動的節點Node1,wsrep_cluster_address必須設定為空,即"gcomm://",其他節點則要指定
2 x8 J8 A5 O0 E+ l3 M( `8 E4. 最後一行的使用者名稱和密碼在所有節點上都必須一樣(此處使用者名稱為wsrep,後面馬上會建立該使用者,密碼為password) 下面,在每個節點上建立使用者及實現遠端資料庫可以登入(解決前文說到的無法訪問): mysql –u root –pCREATE USER ‘wsrep’@’%’ IDENTIFIED BY ‘password’;CREATE USER ‘root’@’%’ IDENTIFIED BY ‘password’;GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;FLUSH PRIVILEGES;
- I/ b1 @9 M; K- B2 f0 W重啟資料庫,然後可以試試前面提到的從Node1登入到Node2是否能成功! 接下來,Ubuntu有一個特別的使用者叫debian-sys-maint會來維持Mysql的執行任務,由於資料庫的複製,這個維護的執行只會在第一個節點成功進行,在其他節點上則會失敗,所以要將啟動節點上的/etc/mysql/debian.cnf檔案拷貝到其他節點上,執行如下命令: scp /etc/mysql/debian.cnf root@192.168.1.175:/etc/mysql/scp /etc/mysql/debian.cnf root@192.168.1.176:/etc/mysql/' ~8 X( e8 O1 B8 N8 ?7 i
執行過程中可能會失敗,這個問題是因為在/etc/mysql/my.cnf檔案中有一行要改為: PermitRootLogin yes
* V: m, ?/ Y; z" C8 P! ^這樣就會成功了! 當以上步驟都完成了之後,可以準備開始啟動叢集了! 啟動叢集
% d3 C: {! ?' p, \在Node1上將mysql服務先停掉然後重啟,注意一定要在前面提到的wsrep_cluster_address="gcomm://"的節點上(本例中就是Node1)執行最開始的啟動程式: service mysql stopservice mysql start --wsrep-new-cluster! V& `: v2 V8 l& v/ e$ q
在其他節點上執行: service mysql restart 驗證是否成功 檢視資料表
) w* l7 m$ c: Q登入Node1: mysql -u root -pEnter password:mysql> SHOW STATUS LIKE 'wsrep%';
# t& ~" {: O$ l* d. A9 [4 |" ?重點關注的是下面這幾行: wsrep_ready | ON5 g2 {4 h1 S- w, j3 F2 W! [
如果狀態是 ON,那麼就要看: wsrep_cluster_size | 3
# C4 u6 @& g( N7 ]如果是3,那麼是成功的,否則是不成功的! 資料庫複製測試
$ F* }- ?1 B" M, m0 g在Node1上建立一個表: CREATE database test;
9 Z G8 O; E: ?5 s立刻到Node2和Node3節點上使用 show databases; 檢視是否也有了test這個資料庫,如果有則成功! |