程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 實戰MySQL集群,試用CentOS 6下的MariaDB-Galera集成版

實戰MySQL集群,試用CentOS 6下的MariaDB-Galera集成版

編輯:MySQL綜合教程

  說起mysql的集群估計很多人會首先想起mysql自帶的replication或者mysql-mmm。mysql-mmm其實也是基於mysql自帶的replication的,不過封裝的更好用一些,但是配置起來還是比較麻煩,而且對於動態增減master節點可以說是無能為力的。

  偶然的情況下了解到有一個基於mysql的集群galera,除了只支持InnoDB以外,基本就沒什麼缺點了。大家看看官方是怎麼說的:



  廢話少說,馬上開始動手測試,測試用的OS是64位的CentOS 6。首先,添加MariaDB的軟件倉庫,創建文件“/etc/yum.repos.d/MariaDB.repo”,內容

# MariaDB 5.5 CentOS repository list - created 2013-11-05 06:30== http://yum.mariadb.org/5.5==1

# yum -y install MariaDB-Galera-server.x86_64 MariaDB-client.x86_64 galera.x86_64

 # cp /usr/share/mysql/wsrep.cnf /etc/my.cnf.d/

  Galera默認試用4567端口同步數據,需要修改防火牆,這裡為了方便直接把防火牆給關閉了

# /etc/init.d/iptables stop

  MariaDB-Galera貌似沒有給你提供配套的selinux配置,為了方便,直接把selinux給禁止了

# setenforce 0

  既然是集群,當然不能只有一台機器

  修改機器a的“/etc/my.cnf.d/wsrep.cnf”,改動內容

=="gcomm://"=192.168.56.103

  因為機器a是第一個節點,wsrep_cluster_address直接填"gcomm://"就可以了。如果是要加入到某個集群,那就填集群裡面隨便一個節點的ip就可以,例如"gcomm://192.168.56.103:4567"。wsrep_sst_receive_address是本機用來接收同步數據的ip,默認是機器網絡配置裡面找到的第一個ip,如果機器有多個ip的話最好指定一下,例如“192.168.56.103”。啟動mysql數據庫服務

# /etc/init.d/mysql start

  現在要把機器b加入到集群,同樣修改配置文件“/etc/my.cnf.d/wsrep.cnf”,改動內容

=="gcomm://192.168.56.103:4567"=192.168.56.104

  啟動機器b的mysql服務。

  到這裡集群就搭建完畢了,現在開始正式測試集群。首先,鏈接機器a的mysql服務,創建一個數據庫和一張表,表裡面有一個讓mysql-mmm比較麻煩和頭疼的AUTO_INCREMENT字段,順便添加樂一個用來訪問這個數據庫的用戶

# mysql  the MariaDB monitor.  Commands   ;  .33aMariaDB MariaDB Server, wsrep_23., , Oracle, Monty Program Ab     help. Type   clear the    row affected (    asdf.  @ identified   rows affected (    aatt (aa    rows affected (   aatt  ( row affected (   aatt  ( row affected (   
 aa 

   
   

 rows   ( sec)

  auto_increment的步進自動變成2了,是不是很智能?現在我們去到機器b,用新建的用戶名登錄mysql服務,執行類似的操作

# mysql u aauu  the MariaDB monitor.  Commands   ;  .33aMariaDB MariaDB Server, wsrep_23., , Oracle, Monty Program Ab     help. Type   clear the     aatt  ( row affected (   aatt  ( row affected (   
 aa 

   
   
   
   

 rows   ( sec)

  看到沒有?剛才插入的數據都在這個就沒什麼值得說的,厲害的是機器a上新建的用戶在這裡可以用!現在我們來動態把機器c加入到集群裡面去

=="gcomm://192.168.56.104:4567"=192.168.56.105

  之前說過的,加入到集群裡面隨便一個節點的ip都可以。啟動機器c的mysql服務,然後執行類似操作

# mysql  the MariaDB monitor.  Commands   ;  .33aMariaDB MariaDB Server, wsrep_23., , Oracle, Monty Program Ab     help. Type   clear the   information  completion     this feature  get a quicker startup     aatt  ( row affected (   aatt  ( row affected (   
 aa 

   
   
   
   
   
  

 rows   ( sec)

  auto_increment的步進自動變成3了,看到沒有?

  這裡我只是簡單的列舉了Galera的一個使用場景,還有很多它先進的地方這裡沒有提到,它大家可以上它的官方網站看看。

  參考網址:

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved