Linux下構建MySQL叢集

來源:互聯網
上載者:User

Linux下構建MySQL叢集

一、目標

1.安裝MySQL-Cluster相關軟體包。

2.依次組態管理/資料/SQL節點。

3.啟動並測試MySQL-Cluster叢集架構。

二、方案

使用6台RHEL 6.5虛擬機器,。其中sql1和sql2作為SQL節點,ndb1和ndb2作為資料節點,mgmsvr作為管理節點,這5個構成MySQL叢集體系的5個節點應安裝Cluster版的MySQL相關軟體包;測試用的Linux客戶機只需安裝普通版的MySQL-client即可。

--------------------------------------分割線 --------------------------------------

Ubuntu 14.04下安裝MySQL

《MySQL權威指南(原書第2版)》清晰中文掃描版 PDF

Ubuntu 14.04 LTS 安裝 LNMP Nginx\PHP5 (PHP-FPM)\MySQL

Ubuntu 14.04下搭建MySQL主從伺服器

Ubuntu 12.04 LTS 構建高可用分布式 MySQL 叢集

Ubuntu 12.04下原始碼安裝MySQL5.6以及Python-MySQLdb

MySQL-5.5.38通用二進位安裝

--------------------------------------分割線 --------------------------------------

三、實現

1、準備工作

 1)確認各節點伺服器的IP地址,使各節點能互連,防火牆和selinux處於關閉狀態。

關閉防火牆:

    # iptables -F                      //清空防火牆條目

    # service iptables stop      //關閉防火牆

    # chkconfig iptables off    //開機不自啟

關閉selinux:

  vim開啟 /etc/selinux/config修改SELINUX=disabled 

  # getenforce 0

2)卸載所有節點上的衝突包

官方提供的MySQL-Cluster相關軟體包(可在這裡獲得 http://pan.baidu.com/s/1pJv46j5 )已整合資料庫服務端/用戶端程式,因此可直接用來替換普通的MySQL服務端/用戶端程式。如果已安裝有普通版的mysql-server、mysql、MySQL-server、MySQL-client包,先將其卸載(若沒有則忽略):

  # rpm -qa | grep -i mysql        //檢查有沒有安裝普通版的mysql軟體

對於RHEL內建的mysql-libs暫時保留(如果直接卸載會因為依賴關係刪除許多重要的包,比如crontab、postfix等),但在安裝MySQl-Cluster相關包的時候採用“-U”升級的方式執行替換。

  # rpm -e --nodeps MySQL-client

如果有殘留的/etc/my.cnf檔案,確保已轉移備用或直接刪除。

  # mv /etc/my.cnf /etc/my.cnf.bak

3)在所有節點上,解壓下載的MySQL-Cluster集合包

  # tar xvf MySQL-Cluster-gpl-7.3.3-1.el6.x86_64.rpm-bundle.tar

  MySQL-Cluster-shared-gpl-7.3.3-1.el6.x86_64.rpm


  MySQL-Cluster-shared-compat-gpl-7.3.3-1.el6.x86_64.rpm    //安裝共用庫和相容包

  MySQL-Cluster-server-gpl-7.3.3-1.el6.x86_64.rpm                //安裝服務端程式

  MySQL-Cluster-client-gpl-7.3.3-1.el6.x86_64.rpm                //安裝用戶端程式

  MySQL-Cluster-test-gpl-7.3.3-1.el6.x86_64.rpm

  MySQL-Cluster-devel-gpl-7.3.3-1.el6.x86_64.rpm

  MySQL-Cluster-embedded-gpl-7.3.3-1.el6.x86_64.rpm

 

在SQL節點(sql1、sql2)伺服器上,修改MySQL資料庫的root密碼:

  [root@sql1 ~]# service mysql start        //啟動MySQL服務程式

  Starting MySQL... [確定]

  [root@sql2 ~]# cat /root/.mysql_secret

  # The random password set for the root user at Wed Sep  3 21:04:20 2014 (local time): msA7Bq2B

 

  [root@sql1 ~]# mysql –u root –pmsA7Bq2B            //以上述預設密碼登入

    mysql> set password=password("123456");

    Query OK, 0 rows affected (0.17 sec)

在資料節點(ndb1、ndb2)和管理節點(mgmsvr)上,實際上並不需要啟動MySQL服務程式,因此建議將mysql服務的自啟狀態設為關閉

  [root@ndb1 ~]# chkconfig mysql off

4)在sql節點添加授權資料庫使用者

在SQL節點(sql1、sql2)伺服器上,添加相應的授權資料庫使用者,以方便用戶端使用資料庫服務。以使用者user為例,允許其從192.168.4.0/24網段訪問:

 

  mysql> grant all on *.* to user@'192.168.4.%' identified by "123456"; 

  Query OK, 0 rows affected (0.03 sec)

 

2、組態管理節點mgmsvr(192.168.4.3)

 1)建立工作資料夾

為管理節點提供一個工作目錄,方便記錄mysql叢集相關的日誌訊息:

  [root@mgmsvr ~]# mkdir /var/log/mysql-cluster

 2)建立設定檔

在管理節點的設定檔中,應涵蓋所有節點的設定,主要包括各節點的ID號、主機名稱或IP地址、工作目錄等資訊。

針對本實驗,管理節點的配置參考如下:

  [root@mgmsvr ~]# cat /etc/config.ini    //檔案名稱可以隨意

  [ndbd default]                //為所有的節點指定預設配置

  NoOfReplicas=2//保留2份資料拷貝

  DataMemory=80M//資料緩衝大小

  IndexMemory=18M//索引緩衝大小

  [ndb_mgmd]//指定一個管理節點的配置,可以有多個管理節點

  nodeid=3//節點的id號,作為節點的唯一識別碼,不可以與其他節點相同

  hostname=192.168.4.3  //節點的ip地址

  datadir=/var/log/mysql-cluster  //該管理節點的工作目錄

  [ndbd]//指定資料節點的配置,每個資料節點對應一個ndbd配置

  nodeid=4

  hostname=192.168.4.4     

  datadir=/var/log/mysql-cluster/data

  [ndbd]

  nodeid=5

  hostname=192.168.4.5

  datadir=/var/log/mysql-cluster/data

  [mysqld]//指定SQL節點的配置,每個SQL節點對應一個配mysqld置

  nodeid=6

  hostname=192.168.4.6

  [mysqld]

  nodeid=7

  hostname=192.168.4.7

更多詳情見請繼續閱讀下一頁的精彩內容:

  • 1
  • 2
  • 3
  • 下一頁

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.