Ubuntu 安装配置mysql-cluster

我的数据盘挂接在/mnt


1. 集群配置如下

3台机器)

 

管理节点:10.117.9.177

数据节点110.153.193.91

数据节点210.173.82.29

sql节点110.153.193.91

sql节点210.173.82.29

 

我使用3台机器进行配置,其中两台机器上的数据节点与sql节点在一起

 

安装包:mysql-cluster-gpl-7.4.6-linux-glibc2.5-x86_64.tar

 

2. 管理节点安装(10.117.9.177)

安装

 

shell> groupadd mysql

shell> useradd mysql -g mysql

shell> mv mysql-cluster-gpl-7.4.6-linux-glibc2.5-x86_64.tar.gz  /mnt/

shell> cd /mnt/

shell> tar zxvf mysql-cluster-gpl-7.4.6-linux-glibc2.5-x86_64.tar.gz

shell> mv mysql-cluster-gpl-7.4.6-linux-glibc2.5-x86_64 mysql

shell> chown -R mysql:mysql mysql

shell> cd mysql

shell> scripts/mysql_install_db --user=mysql --basedir=/mnt/mysql/ --datadir=/mnt/mysql/data/

 

 

配置管理节点

shell> mkdir /var/lib/mysql-cluster

shell> cd /var/lib/mysql-cluster

 

 

vi config.ini 添加以下内容

 

[ndbd default]

NoOfReplicas=2

DataMemory=2048M

IndexMemory=2048M

MaxNoOfConcurrentOperations=50000

[ndb_mgmd]

NodeId=1

Hostname=10.117.9.177

datadir=/mnt/mysql/mysql-cluster/data

[ndbd]

NodeId=2

Hostname=10.153.193.91

datadir=/mnt/mysql/data/

[ndbd]

NodeId=3

Hostname=10.173.82.29

datadir=/mnt/mysql/data/

[MYSQLD]

NodeId=4

Hostname=10.153.193.91

[mysqld]

NodeId=5

Hostname=10.173.82.29

 

 

3. 数据节点安装(10.153.193.9110.173.82.29)

执行相同的安装操作

 

shell> groupadd mysql

shell> useradd mysql -g mysql

shell> mysql-cluster-gpl-7.4.6-linux-glibc2.5-x86_64.tar.gz  /mnt

shell> cd /mnt/

shell> tar zxvf mysql-cluster-gpl-7.4.6-linux-glibc2.5-x86_64.tar.gz

shell> mv mysql-cluster-gpl-7.4.6-linux-glibc2.5-x86_64 mysql

shell> chown -R mysql:mysql mysql

shell> cd mysql

shell> scripts/mysql_install_db --user=mysql --basedir=/mnt/mysql/ --datadir=/mnt/mysql/data/

 

 

shell> cp support-files/mysql.server /etc/init.d/mysqld

 

配置数据节点

vi /etc/my.cnf 添加入如下内容

 

# For advice on how to change settings please see

# http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html

[mysqld]

wait_timeout=31536000

interactive_timeout=31536000

default-storage-engine=ndbcluster

ndbcluster

datadir=/mnt/mysql/data

basedir=/mnt/mysql

innodb_file_per_table=1

ndb-connectstring="10.117.9.177:1186"

socket=/mnt/mysql/mysqld.sock

#skip-grant-tables

#tmpdir=/mnt/tmp

character_set_server=utf8

[mysql_cluster]

ndb-connectstring="10.117.9.177:1186"

[client]

port=3306

socket=/mnt/mysql/mysqld.sock

#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 

 

 

4. 启动管理节点服务(10.117.9.177)

 

shell> /mnt/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini --configdir=/mnt/mysql/mysql-cluster--initial

shell> netstat -lntpu

看到1186开放说明启动正常

 

★必须注意:只是在第一次启动或在备份/恢复或配置变化后重启ndbd时,才加–initial参数!

 

 

 

5. 启动数据节点服务(10.153.193.9110.173.82.29Data (NDBD) node

 

 

shell> /mnt/mysql/bin/ndbd --initial

 

备注: 启动此处时,需要为防火墙开启1186,3306端口。
在两台机器上启动服务, 执行相同操作

必须注意:只是在第一次启动或在备份/恢复或配置变化后重启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: 3

 

 

6. 启动SQL节点服务(10.153.193.9110.173.82.29 MySQL server (SQL) node

shell> service mysqld start

 

 

 

7. 功能测试

在管理节点(10.117.9.177)上查看服务状态

 

shell> /mnt/mysql/bin/ndb_mgm

ndb_mgm> show

 

 

Connected to Management Server at: localhost:1186

Cluster Configuration

---------------------

[ndbd(NDB)]     2 node(s)

id=2    @10.153.193.91  (mysql-5.5.22 ndb-7.4.6, Nodegroup: 0, Master)

id=3    @10.173.82.29  (mysql-5.5.22 ndb-7.4.6, Nodegroup: 0)

 

[ndb_mgmd(MGM)] 1 node(s)

id=1    @10.117.9.177  (mysql-5.5.22 ndb-7.4.6)

 

[mysqld(API)]   2 node(s)

id=4    @10.153.193.91  (mysql-5.5.22 ndb-7.4.6)

id=5    @10.173.82.29  (mysql-5.5.22 ndb-7.4.6)

 

 

可以看到这里的数据节点、管理节点、sql节点都是正常的

 

非常重要:
1.在建表的时候一定要用ENGINE=NDBENGINE=NDBCLUSTER指定使用NDB集群存储引擎,或用ALTER TABLE选项更改表的存储引擎。
2.NDB表必须有一个主键,因此创建表的时候必须定义主键,否则NDB存储引擎将自动生成隐含的主键。
3.Sql节点的用户权限表仍然采用MYISAM存储引擎保存的,所以在一个Sql节点创建的MySql用户只能访问这个节点,如果要用同样的用户访问别的Sql节点,需要在对应的Sql节点追加用户。虽然在MySql Cluster7.2版本开始提供了用户权限共享”.

 

测试一:
现在我们在其中一个数据节点上进行相关数据库的创建,然后到另外一个数据节点上看看数据是否同步
在数据节点110.153.193.91)上执行:

 

shell> /mnt/mysql/bin/mysql -u root -p

mysql>show databases;

mysql>create database aa;

mysql>use aa;

mysql>CREATE TABLE ctest2 (i INT) ENGINE=NDB; //这里必须指定数据库表的引擎为NDB,否则同步失败

mysql> INSERT INTO ctest2 () VALUES (1);

mysql> SELECT * FROM ctest2;

 

然后在数据节点2上看数据是否同步过来了

经过测试,在非master上创建数据,可以同步到master
查看表的引擎是不是NDB>show create table 表名;

 

 

测试二、关闭一个数据节点 ,在另外一个节点写输入,开启关闭的节点,看数据是否同步过来
首先把数据节点1重启,然后在节点2上添加数据
在节点2(10.173.82.29)上操作如下:

 

mysql> create database bb;

mysql> use bb

mysql> CREATE TABLE ctest3 (i INT) ENGINE=NDB;

mysql> use aa

mysql> INSERT INTO ctest2 () VALUES (3333);mysql> SELECT * FROM ctest2;

 

等节点1启动完毕,启动节点1的服务#/usr/local/mysql/bin/ndbd --initial#service mysqld start然后登录进去查看数据# /usr/local/mysql/bin/mysql -u root p可以看到数据已经同步过来了,说明数据可以双向同步了。

 

 

8. 关闭集群

1.关闭管理节点和数据节点,只需要在管理节点(ClusterMgm--134)里执行

shell> /mnt/mysql/bin/ndb_mgm -e shutdown

 

显示

Connected to Management Server at: localhost:1186

2 NDB Cluster node(s) have shutdown.

Disconnecting to allow management server to shutdown.

 

 

2.然后关闭Sql节点(91,29),分别在2个节点里运行:

 

shell> /etc/init.d/mysql stop

Shutting down MySQL... SUCCESS!

 

注意:要再次启动集群,就按照第4,5,6步的启动步骤即可,不过这次启动数据节点的时候就不要加”–initial”参数了。 

 

 






你可能感兴趣的:(ubuntu,mysql-cluster)