天天看點

mysql簇叢集配置安裝相關

配置mysql簇叢集的個人心得。

安裝準備:

1.所需軟體。

  管理節點:

      MySQL-Cluster-gpl-management-7.1.9a-1.rhel5.i386.rpm

      MySQL-Cluster-gpl-tools-7.1.9a-1.rhel4.i386.rpm

  sql節點:

      MySQL-Cluster-gpl-server-7.1.9a-1.rhel5.i386.rpm

      MySQL-Cluster-gpl-client-7.1.9a-1.rhel5.i386.rpm

  存儲節點:

      MySQL-Cluster-gpl-storage-7.1.9a-1.rhel4.i386.rpm

2.前提條件

  關閉所有叢集機器的防火牆

  在所有mysql叢集的機器中配置/etc/hosts檔案将所有機器的ip和機器名稱寫進去。并将所有的叢集機器加到同一個組群中。

  添加到mysql組中: groupadd mysql

  添加使用者mysql: useradd -g mysql mysql

一 安裝和配置管理節點

 1. 安裝準備

       建立檔案夾:mkdir /var/lib/mysql/data表示存儲節點檔案夾

                  mkdir /var/lib/mysql-cluster表示管理節點檔案夾

       賦予權限:chmod -R 1777 /var/lib/mysql

                             chmod -R 1777 /var/lib/mysql-cluster

 2. 安裝管理節點軟體

    rpm -ivh MySQL-Cluster-gpl-management-7.1.9a-1.rhel5.i386.rpm

       rpm -ivh MySQL-Cluster-gpl-tools-7.1.9a-1.rhel4.i386.rpm

 3. 配置管理節點

       在mysql目錄下建立mysql-cluster檔案夾,進入到mysql-cluster,建立config.ini

    [NDBD DEFAULT]

       NoOfReplicas=2       #備份,副本,這樣的話2台資料節點的資料就會同步

       DataMemory=200M

       IndexMemory=100M

       [TCP DEFAULT]

       portnumber=2202 連接配接端口号,與存儲節點和sql節點對應

       [NDB_MGMD]   #管理節點

       id=11

       hostname=管理節點的ip位址

       datadir=/var/lib/mysql-cluster

       [NDBD]    #資料節點

       id=21

       hostname=對應資料節點的IP位址

       datadir=/var/lib/mysql/data  

       [NDBD]   #資料節點

       id=22

       hostname=對應資料節點的IP位址

       datadir=/var/lib/mysql/data

       可以有多個ndbd幾點,隻需要在此處添加[NDBD]注冊即可

       [MySQLD]   #sql節點

       id=31

       hostname=對應sql節點的ip位址

       [MySQLD]    #sql節點

       id=32

       hostname=對應sql節點的ip位址

    可以有多個ndbd幾點,隻需要在此處添加[MySQLD]注冊即可

  4. 啟動管理節點

       ndb_mgmd -f /var/lib/mysql-cluster/config.ini

  5. 管理工具

       使用指令ndb_mgm進入管理控制台,輸入show可以顯示叢集裝置的連接配接資訊。

二 安裝配置ndbd節點

  1. 安裝軟體

     rpm -ivh MySQL-Cluster-gpl-storage-7.1.9a-1.rhel4.i386.rpm

  2. 配置ndbd節點

     在/ect/my.cnf檔案中添加資訊

     vi /ect/my.cnf

     [mysqld]

     max_connections = 100  最大連接配接數

     slow_query_log = /var/lib/mysql-cluster/slow_query.log

     long_query_time = 1

     datadir = /var/lib/mysql-cluster

     ndbcluster

     ndb-connectstring="nodeid=id,ip" 其中id為在管理節點中配置的本存儲節點ip對應的id,後面的ip位址為管理節點的ip位址

     [mysql_cluster]

     ndb-connectstring="nodeid=id,ip" 其中id為在管理節點中配置的本存儲節點ip對應的id,後面的ip位址為管理節點的ip位址

  3. 啟動ndbd節點

     第一次啟動使用指令 ndbd -initial

     以後使用ndbd即可

三 安裝配置sql節點

   1. 安裝軟體

      rpm -ivh MySQL-Cluster-gpl-server-7.1.9a-1.rhel5.i386.rpm

      rpm -ovh MySQL-Cluster-gpl-client-7.1.9a-1.rhel5.i386.rpm

   2. 配置sql節點

      運作下面指令:

      cp my-medium.ini /etc/my.cnf  使用 find / -name medium.cnf  查找到medium.cnf檔案的位置,然後使用複制

      1>my-small.ini是為了小型資料庫而設計的。不應該把這個模型用于含有一些常用項目的資料庫。

      2>my-medium.ini是為中等規模的資料庫而設計的。如果你正在企業中使用RHEL,可能會比這個作業系統的最小RAM需求(256MB)明顯多得多的實體内

         存。由此可見,如果有那麼多RAM記憶體可以使用,自然可以在同一台機器上運作其它服務。

      3>my-large.ini是為專用于一個SQL資料庫的計算機而設計的。由于它可以為該資料庫使用多達512MB的記憶體,是以在這種類型的系統上将需要至少

         1GB  的RAM,以便它能夠同時處理作業系統與資料庫應用程式。

      4>my-huge.ini是為企業中的資料庫而設計的。這樣的資料庫要求專用伺服器和1GB或1GB以上的RAM。

      vi /etc/my.cnf

      在my.cnf檔案的後面添加

       [MYSQLD]

    basedir = /usr

    datadir  = /usr/local/mysql/data/

    user  = mysql

    socket = /tmp/mysql.sock

    ndbcluster

    ndb-connectstring=="nodeid=id,ip"  其中id為在管理節點中配置的本存儲節點ip對應的id,後面的ip位址為管理節點的ip位址

    [MYSQL_CLUSTER]

    ndb-connectstring=="nodeid=id,ip"  其中id為在管理節點中配置的本存儲節點ip對應的id,後面的ip位址為管理節點的ip位址

   3.賦予權限

      建立 /usr/local/mysql/data 目錄檔案夾

      chomd 775 /usr/local/mysql/data

      賦予資料庫存取權限

      mysql_install_db /usr/local/mysql/data  使用find / -name mysql_install_db 查找到mysql_install_db 然後使用此指令

      mysql_install_db  重新初始化mysql

   4.啟動mysqld

      使用指令 mysqld_safe

四 測試叢集

  1.管理節點中輸入ndb_mgm進入管理控制台,輸入show,在顯示的資訊如下圖所示,即表示所有連接配接正常。

    ________________________________________________________________________

   | [ndbd(NDB)]     2 node(s)                                                                                                      

   | id=21   @192.168.41.52  (mysql-5.1.51 ndb-7.1.9, Nodegroup: 0, Master)                          

   | id=22   @192.168.41.42  (mysql-5.1.51 ndb-7.1.10, Nodegroup: 0)                                     

   |                                                                                                                                               

   | [ndb_mgmd(MGM)] 1 node(s)                                                                                                

   | id=11   @192.168.41.240  (mysql-5.1.51 ndb-7.1.10)                                                           

   |                                                                                                                                               

   | [mysqld(API)]   2 node(s)                                                                                                      

   | id=31   @192.168.41.51  (mysql-5.1.51 ndb-7.1.9)                                                              

   | id=32   @192.168.41.55  (mysql-5.1.51 ndb-7.1.9)                                                              

   |________________________________________________________________________

  2.在sql1節點中登入mysql -u root

    然後建立一個資料庫 sql1test, 進入sql1test資料庫建立一張表test,然後在裡面添加幾條資料。

  3.在另一個sql節點中登入mysql -u root

    檢視資料庫,并找到sql1test資料庫,進入實用select語句查詢test表中的記錄,顯示的記錄正常。

  4.斷開一個ndbd資料存儲節點

    在sql1節點中查詢test表中的記錄正常。

  上面描述的資訊正常則叢集已經搭起來了。

五 遇到的問題

  1.sql節點啟動失敗,提示不存在 /var/lib/mysql/mysql.sock檔案。

    打開/etc/my.cnf修改[client]下的socket值,使得此值與[MYSQLD]下的socket值相同。

  2.錯誤資訊無法找到errmsg.sys檔案。

    修改[MYSQLD]下的basedir值,使用find / -name errmsg.sys查找到此檔案,然後修改basedir值使其能正确的指到errmsg.sys檔案。

  3.使用mysql指令進入資料庫控制台中,無法實作資料庫的叢集模式。

    使用mysql -u root 登入到資料庫控制台即可。

  4.建立的表無法在另一個sql節點的mysql控制台中檢視到。

    使用指令 create table [table name] () engine=ndbcluster;建立資料庫表即可實作