在上文中,我们配置好了宿主机与虚拟机以及虚拟机之间的互通信配置,现在在这两台虚拟机上安装mysql-cluster双机集群。
参考地址:
这里我们采用二进制tar.gz方式来安装。
一、安装环境及安装包
两台虚拟机,都是debian6.0.7
安装包:mysql-cluster-gpl-7.3.3-linux-glibc2.5-i686.tar.gz
SerA:192.168.56.101
SerB:192.168.56.102
二、在SerA和SerB上安装mysql-cluster
mysql-cluster分为三个节点:SQL节点(也称访问节点),数据节点,管理节点。各节点的具体功能可参考官方文档。
注意,我们这里在SerA和SerB上都同时作为SQL节点,数据节点,管理节点(参考地址2)。
1、创建组和用户(记得获取root权限哈):
groupadd mysql
useradd -g mysql mysql
2、将下载的安装包拷贝到虚拟机下
或者用U盘,也可以制成iso文件,用光驱加载进去
3、假设安装包在/var/tmp下,将其解压到/usr/local/目录下,并更名为mysql
cd /var/tmp
tar -C /usr/local/ -xzvf mysql-cluster-gpl-7.3.3-linux-glibc2.5-i686.tar.gz
mv mysql-cluster-gpl-7.3.3-linux-glibc2.5-i686.tar.gz mysql
4、切换到mysql目录下,执行脚本安装mysql
cd mysql
scripts/mysql_install_db --user=mysql
这时如果提示依赖libaio库的话,可以参考地址3解决。
5、修改mysql目录的权限
chown -R root /usr/local/mysql
chown -R root /usr/local/mysql/data
chgrp -R root /usr/local/mysql
6、将所需二进制文件拷贝到环境变量下并赋予执行权限
cd /usr/local/mysql/bin
cp ndbd /usr/local/bin/ ;数据节点进程
cp ndbmtd /usr/local/bin/ ;也是数据节点进程,支持multiple-thread
chmod +x /usr/local/bin/ndb*
cp ndb_mgmd /usr/local/bin/ ;管理节点守护进程
cp ndb_mgm /usr/local/bin/ ;管理节点客户端
chmod +x /usr/local/bin/ndb_mgm*
cp mysqld_safe /usr/local/bin/ ;访问节点进程
chmod +x /usr/local/bin/mysqld_safe
这里也可以用软连接的方式,或者把/usr/local/mysql/bin/加入环境变量中,但是官方文档给出的是直接拷贝,也就这么做了。
以上步骤在SerA和SerB上都需做一次。
三、配置
vi /etc/my.cnf[mysqld]
ndbcluster
[mysql_cluster]
ndb-connectstring=192.168.56.101,192.168.56.102
mkdir /var/lib/mysql-cluster
vi /var/lib/mysql-cluster/config.ini[ndbd default]
NoOfReplicas= 2
MaxNoOfConcurrentOperations= 10000
#Amount of memory required=(SizeofDatabase * NumberOfReplicas * 1.1 ) / NumberOfDataNodes
DataMemory= 128M
IndexMemory= 24M
TimeBetweenWatchDogCheck= 30000
DataDir=/var/lib/mysql-cluster
MaxNoOfOrderedIndexes= 512
StartPartialTimeout=100
StartPartitionedTimeout=100
ArbitrationTimeout=5000
TransactionDeadlockDetectionTimeout=5000
HeartbeatIntervalDbDb=5000
StopOnError=0
[ndb_mgmd default]
DataDir=/var/lib/mysql-cluster
[ndb_mgmd]
NodeId=1
HostName= 192.168.56.101
[ndb_mgmd]
NodeId=2
HostName= 192.168.56.102
[ndbd]
NodeId= 3
HostName= 192.168.56.101
[ndbd]
NodeId= 4
HostName= 192.168.56.102
[mysqld]
ArbitrationRank=2
[mysqld]
ArbitrationRank=2
[tcp default]
PortNumber=2202
SerA和SerB上也都要做。
四、启动
在SerA上,依次输入
ndb_mgmd -f /var/lib/mysql-cluster/config.ini --ndb-nodeid=1 启动管理节点
ndbd --ndb-nodeid=3 --initial 启动数据节点
mysql_safe --ndb-nodeid=5 --user=mysql & 启动SQL节点
在SerB上,依次输入
ndb_mgmd -f /var/lib/mysql-cluster/config.ini --ndb-nodeid=2 启动管理节点
ndbd --ndb-nodeid=4 --initial 启动数据节点
mysql_safe --ndb-nodeid=6 --user=mysql & 启动SQL节点
之后,可以输入ndb_mgm -e show查看当前状态。
出现以下信息的话,就表示已启动成功。
Connected to Management Server at: 192.168.56.101:1186
Cluster Configuration
---------------------
[ndbd(NDB)]2 node(s)
id=3@192.168.56.101 (mysql-5.6.14 ndb-7.3.3, Nodegroup: 0, *)
id=4@192.168.56.102 (mysql-5.6.14 ndb-7.3.3, Nodegroup: 0)
[ndb_mgmd(MGM)]2 node(s)
id=1@192.168.56.101 (mysql-5.6.14 ndb-7.3.3)
id=2@192.168.56.102 (mysql-5.6.14 ndb-7.3.3)
[mysqld(API)]2 node(s)
id=5@192.168.56.101 (mysql-5.6.14 ndb-7.3.3)
id=6@192.168.56.102 (mysql-5.6.14 ndb-7.3.3)