Mysql版本:mysql-cluster-gpl-7.1.14-linux-i686-glibc23.tar.gz
操作系统:Debian6.0 虚拟机
192.168.225.131 (MGMD)
192.168.225.133 (NDBD)
192.168.225.134 (NDBD)
192.168.225.135 (MySQLD)
192.168.225.136 (MySQLD)
1.每台虚拟机都安装mysql-cluster
root@debian:/home/john#groupadd mysql
root@debian:/home/john#useradd -g mysql mysql
root@debian:/home/john# tar zxf mysql-cluster-gpl-7.1.14-linux-i686-glibc23.tar.gz
root@debian:/home/john#mv zxf mysql-cluster-gpl-7.1.14-linux-i686-glibc23 /usr/local/mysql
root@debian:/home/john# chown mysql:mysql /usr/local/mysql
root@debian:/home/john#rm mysql-cluster-gpl-7.1.14-linux-i686-glibc23.tar.gz
2.配置MGMD(管理节点192,168.225.131)
创建文件/var/lib/mysql-cluster/config.ini (可以是其他位置或命名)
[NDBD DEFAULT]
NoOfReplicas=2
DataMemory=100M
IndexMemory=100M
[TCP DEFAULT]
portnumber=2202
[NDB_MGMD]
id=1
hostname=192.168.225.131
datadir=/var/lib/mysql-cluster
[NDBD]
id=2
hostname=192.168.225.133
datadir=/usr/local/mysql/ndbdata
[NDBD]
id=3
hostname=192.168.225.134
datadir=/usr/local/mysql/ndbdata
[mysqld]
id=4
hostname=192.168.225.135
[mysqld]
id=5
hostname=192.168.225.136
3.配置NDBD(数据节点192.168.225.133, 192.168.225.134)
创建/etc/my.cnf文件,内容如下
[mysqld]
datadir=/usr/local/mysql/ndbdata
[mysql_cluster]
ndb-connectstring = 192.168.225.131 #指向mgmd
4.配置MySQLD(SQL节点192.168.225.135, 192.168.225.136)
创建/etc/my.cnf文件,内容如下
[mysqld]
ndbcluster
ndb-connectstring=192.168.225.131
[mysql_cluster]
ndb-connectstring=192.168.225.131
安装System tables
root@debian:/usr/local/mysql/scripts# mysql_install_db --user=mysql --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
5.以上配置完成无误之后,启动管理节点 192.168.225.131
root@debian:/usr/local/mysql/bin# ./ndb_mgmd -f /var/lib/mysql-cluster/config.ini
root@debian:/usr/local/mysql/bin# ./ndb_mgmd
ndb_mgm> show
初次启动时候,id=2,3,4,5应该都是 not connected。
6.启动NDB节点和MySQL节点
启动NDB节点
root@debian:/usr/local/mysql/bin# ./ndbd
启动MySQL节点
root@debian:/usr/local/mysql/bin# ./mysqld_safe &
此处若启动出错,先查看第4步中 安装System tables是否正确。
7.测试 (MySQLD节点192.168.225.135, 192.168.225.136 上进行)
root@debian:/usr/local/mysql/bin# ln -s /usr/local/mysql/bin/mysql /usr/bin
root@debian:/usr/local/mysql/bin# mysql -uroot test
mysql> create table job(id int auto_increment,name varchar(100)) engine=ndbcluster default charset utf8;
engine=ndbcluster不能少,不然节点无法同步。
在两个节点中创建表并插入数据,测试结果节点数据已同步...OK
8.后续 停止节点 重启节点
停止ndbd节点
如果所有的数据节点ndbd都停止,SQL节点mysqld会自动都失去连接,但是mysqld进程依然存活,导致重新恢复ndbd之后,mysqld没法自动恢复
这时候,需要先将mysqld进程杀死,然后重启mysqld节点。
值得注意的地方
运行/usr/local/mysql/scripts/mysql_install_db --user=mysql
参数--basedir=/usr/local/mysql --datadir=/usr/local/mysql/data & (这点非常重要)