一、檢查環境
1.檢查系統是否裝載了mysql
使用命令: rpm -qa|grep -i mysql
如果有顯示全部卸載,如果沒有說明沒有安裝mysql,有的話則刪除 .
使用命令:rpm -e ****** 或者 yum -y remove *****
2.刪除my.cnf
使用命令: rm –fr /etc/my.cnf
二、部署安裝(管理節點和數據節點同樣操作)
1.添加用戶組及用戶
shell> groupadd mysql
shell> useradd mysql -g mysql
2.解壓安裝包
shell> mv mysql-cluster-gpl-***-linux2.6-x86_64.tar.gz /usr/local/
shell> cd /usr/local/
shell> tar zxvf mysql-cluster-gpl-7.2.6-linux2.6-x86_64.tar.gz /usr/local/
shell> mv mysql-cluster-gpl-7.2.6-linux2.6-x86_64 mysql
shell> chown -R mysql:mysql mysql
shell> cd mysql
3.帶參數安裝
shell> scripts/mysql_install_db --user=mysql
--basedir=/usr/local/mysql --datadir=/usr/local/mysql/data &
4.複製啓動的快捷方式
拷貝ndb_mgm ndb_mgmd 文件到 /usr/local/bin/
cp -fr /usr/local/mysql/bin/ndb_mgm* /usr/local/bin/
【管理節點配置】
a.創建mysql-cluster文件夾
mkdir /var/lib/mysql-cluster
b.創建 config.ini文件
vi /var/lib/mysql-cluster/config.ini
文件內容
[NDBD DEFAULT]
NoOfReplicas: 1 #定義在Cluster環境中相同數據的份數 最大爲4
# Data Memory, Index Memory, and String Memory #
DataMemory: 500M #分配的數據內存大小
IndexMemory: 250M #設定用於存放索引(非主鍵)數據的內存段大小
MaxNoOfAttributes: 20480 #類似於總體設置,大一些好,不數據量時容易報錯
MaxNoOfTables: 1024
MaxNoOfOrderedIndexes: 2048
MaxNoOfUniqueHashIndexes: 512
MaxNoOfTriggers: 10240
[MGM DEFAULT]
PortNumber: 1186 #管理節點端口
[NDB_MGMD] #管理節點IP配置datadir值必須是真實存在的,不然啓動報錯
Nodeid=1
hostname=192.168.1.77
datadir=/var/lib/mysql-cluster/
[NDBD] #數據節點1
Nodeid=2
hostname=192.168.1.78
datadir=/usr/local/mysql/data
[NDBD] #數據節點2
Nodeid=3
hostname=192.168.1.79
datadir=/usr/local/mysql/data
[MYSQLD] #SQL節點1
hostname=192.168.1.77
[MYSQLD] #SQL節點2
hostname=192.168.1.77
[MYSQLD] #預留節點以備擴展使用,否則會出現Failed to allocate nodeid No free node id found for ndbd(NDB)錯誤
保存退出
c.創建my.cnf文件
vi /etc/my.cnf
[MYSQLD]
character_set_server=utf8
ndbcluster #運行NDB存儲引擎
ndb-connectstring=192.168.1.77 #mysql數據庫所在地址
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
port=3306
lower_case_table_names=1 #表名是否區分大小寫 1爲不區分,不然linux下表名是區分大小寫的
[MYSQL_CLUSTER]
ndb-connectstring=192.168.1.77 #mysql cluster 管理節點IP
保存退出
【數據節點配置】
a.創建my.cnf文件
[MYSQLD]
character_set_server=utf8
ndbcluster #運行NDB存儲引擎
ndb-connectstring=192.168.1.78 #mysql數據庫所在地址
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
port=3306
lower_case_table_names=1 #表名是否區分大小寫 1爲不區分,不然linux下表名是區分大小寫的
[MYSQL_CLUSTER]
ndb-connectstring=192.168.1.77 #mysql cluster 管理節點IP
保存退出
三、安裝後調試準備
1.把服務器的防火牆(IPTABLES)與 selinux關閉
service iptables stop
vi /etc/selinux/config (改爲SELINUX=disabled)保存退出
2.reboot兩臺機器
由於不是從系統啓動方面停止的防火牆(IPTABLES)
所以再停止一次防火牆(IPTABLES)
service iptables stop
四、啓動
啓動順序:管理節點 à 數據節點 à SQL節點
關閉順序:SQL節點à 數據節點 à 管理節點
1.動管理節點服務
shell> /usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini
shell> netstat -lntpu
看到1186開放說明啓動正常
2.啓動數據節點服務 Data (NDBD) node
shell> /usr/local/mysql/bin/ndbd --initial
在兩臺機器上啓動服務, 執行相同操作
★必須注意:只是在第一次啓動或在備份/恢復或配置變化後重啓ndbd時,才加–initial參數!
啓動結果如下:
2012-06-30 05:01:11 [ndbd] INFO -- Angel connected to '192.168.6.134:1186'
2012-06-30 05:01:11 [ndbd] INFO -- Angel allocated nodeid
操作命令(節點狀態、客戶端狀態查看 ndb_mgm -e show
停止管理節點與數據節點 ndb_mgm –e shutdown )
五、測試功能是否安裝成功
在其中一個數據庫中建立數據庫和表,並插入數據。然後在另外的數據庫中查看是否有數據。
例如:create table test1(id int) engine=ndbcluster ;
此處engine必須爲ndbcluster 不然集羣時導入數據易丟失,而且建立表的字段時必須有主鍵,不然cluster會默認爲你添加主鍵,耗費無限的內存,導致系統崩潰(此處爲測試表,沒有主鍵,請諒解)