MYSQL CLUSTER 7.3.5 安装手记
-
安装环境
OS: Oracle Linux 6.5 x64
Server 1: SQL节点和存储节点(NDBD节点) , 管理节点
IP : 10.21.2.250
Server 1: SQL节点和存储节点(NDBD节点)
IP : 10.21.2.251
-
准备工作
iptables -F 关闭 firewall 或者设定开启 1186 及 3306
#mysql
/sbin/iptables -A INPUT -s 10.21.0.0/22 -p tcp --dport 1186 -j ACCEPT
/sbin/iptables -A INPUT -s 10.21.0.0/22 -p tcp --dport 3306 -j ACCEPT
/sbin/iptables -A INPUT -s 127.0.0.1/22 -p tcp --dport 1186 -j ACCEPT
/sbin/iptables -A INPUT -s 127.0.0.1/22 -p tcp --dport 3306 -j ACCEPT
#环境准备移除 mysql
rpm -qa | grep mysql*
对于无法顺利移除的套件,可按照如下的命令格式予以删除:
rpm -e --nodeps mysql-libs-5.1.71-1.el6.x86_64#建立帐号
groupadd mysql
useradd mysql -g mysql
http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.3/mysql-cluster-gpl-7.3.5-linux-glibc2.5-x86_64.tar.gz
tar xvf mysql-cluster-gpl-7.3.5-linux-glibc2.5-x86_64.tar.gz
mv mysql-cluster-gpl-7.3.5-linux-glibc2.5-x86_64 /usr/local/mysql
cd /usr/local/mysql
./scripts/mysql_install_db --user=mysql
chown -R mysql data
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf -
SQL节点和存储节点(NDBD节点)安装
(两台主机都要装)
vi /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql/
datadir = /usr/local/mysql/data
user = mysql
port = 3306
socket = /tmp/mysql.sock
ndbcluster
ndb-connectstring=10.21.2.250
[mysql_cluster]
ndb-connectstring=10.21.2.250
-
安装和配置管理节点
(两台主机都要装但只要启动一台即可)
mkdir /usr/local/mysql/mysql-cluster
mkdir /var/lib/mysql-cluster/
vi /var/lib/mysql-cluster/config.inichown -R mysql.mysql /usr/local/mysql/
[ndbd default]
NoOfReplicas= 2
[MYSQLD DEFAULT]
[ndb_mgmd default]
DataDir= /usr/local/mysql/mysql-cluster
[ndb_mgmd]
HostName= 10.21.2.250
[ndbd]
HostName= 10.21.2.250
DataDir= /usr/local/mysql/mysql-cluster
[ndbd]
HostName= 10.21.2.251
DataDir= /usr/local/mysql/mysql-cluster
[mysqld]
HostName= 10.21.2.250
[mysqld]
HostName= 10.21.2.251
-
启动MySQL Cluster管理节点
(主机 10.21.2.50 即可)
/usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini
-
查看管理结点
/usr/local/mysql/bin/ndb_mgm -e show
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 (not connected, accepting connect from 10.21.2.250)
id=3 (not connected, accepting connect from 10.21.2.251)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @192.168.1.108 (mysql-5.6.17 ndb-7.3.5)
[mysqld(API)] 2 node(s)
id=4 (not connected, accepting connect from 10.21.2.250)
id=5 (not connected, accepting connect from 10.21.2.251)目前只启动了管理节点,所以其它都是 not connected 的状态
可以看到ndb_mgmd 是连上的,nbd 和 mysqld 还没有连上
-
启动MySQL Cluster存储节点
在每台存储节点(ndbd)服务器上,如果是第一次启动ndbd进程的话,必须先执行以下命令:
/usr/local/mysql/bin/ndbd --initial
注意,仅应在首次启动ndbd时,或在备份/恢复数据或配置文件发生变化后重启ndbd时使用“--initial”参数。因为该参数会使节点删除由早期ndbd实例创建的、用于恢复的任何文件,包括用于恢复的日志文件。
如果不是第一次启动,直接运行如下命令即可:
/usr/local/mysql/bin/ndbd
可以通过 root# /usr/local/mysql/bin/ndbd --help 得到ndbd命令的帮助信息 -
最后,运行以下命令启动SQL节点服务器(两台)
第一次先安装数据库:
cd /usr/local/mysql/ #不进入这个目录下面执行不成功
/usr/local/mysql/scripts/mysql_install_db --user=mysql
启动执行:/usr/local/mysql/support-files/mysql.server start
-
再查看一次管理结点
Connected to Management Server at: 10.21.2.250:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @10.21.2.250 (mysql-5.6.17 ndb-7.3.5, Nodegroup: 0, *)
id=3 @10.21.2.251 (mysql-5.6.17 ndb-7.3.5, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 @10.21.2.250 (mysql-5.6.17 ndb-7.3.5)
[mysqld(API)] 2 node(s)
id=4 @10.21.2.250 (mysql-5.6.17 ndb-7.3.5)
id=5 @10.21.2.251 (mysql-5.6.17 ndb-7.3.5)
-
创建数据库表测试效果
与没有使用 Cluster的MySQL相比,在MySQL Cluster内操作数据的方式没有太大的区别。执行这类操作时应记住两点:
表必须用ENGINE=NDB或ENGINE=NDBCLUSTER选项创建,或用ALTER TABLE选项更改,以使用NDB Cluster存储引擎在 Cluster内复制它们。如果使用mysqldump的输出从已有数据库导入表,可在文本编辑器中打开SQL脚本,并将该选项添加到任何表创建语句,或用这类选项之一替换任何已有的ENGINE(或TYPE)选项。
另外还请记住,每个NDB表必须有一个主键。如果在创建表时用户未定义主键,NDB Cluster存储引擎将自动生成隐含的主键。(注释:该隐含键也将占用空间,就像任何其他的表索引一样。由于没有足够的内存来容纳这些自动创建的键,出现问题并不罕见)。
下面是一个例子:
在sql节点(id=4/ip=10.21.2.250)上,创建数据表,插入数据:
登录:
/usr/local/mysql/bin/mysql –uroot -p
切换数据库:
use test
创建表:
create table user_info(
id mediumint unsigned not null auto_increment primary key,
username varchar(20) not null default ''
) engine = ndbcluster default charset utf8;
insert into user_info values(1, 'eziep');
insert into user_info values(2, 'lanzhou');
在sql节点(id=5/ip=10.21.2.251)上,查询数据:
登录:
/usr/local/mysql/bin/mysql -uroot
切换数据库:
use test
查询:
select * from user_info;
+-----------+
|id | username |
+-----------+
|1 | eziep |
+-----------+
|2 | lanzhou |
+-----------+ -
安全关闭
要想关闭 Cluster,可在MGM节点所在的机器上,在Shell中简单地输入下述命令:
/usr/local/mysql/bin/ndb_mgm shutdown
运行以下命令关闭SQL节点的mysqld服务:
/usr/local/mysql/support-files/mysql.server stop -
其他
留言列表