Chinaunix首页 | 论坛 | 博客
  • 博客访问: 104637140
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Mysql/postgreSQL

2008-04-29 07:52:06

    来源:赛迪网    作者:Eric

然后我们启动群集管理服务器:

loadb1.test.com:

ndb_mgmd -f /var/lib/mysql-cluster/config.ini

我们应该也需要在服务器启动时能够自动启动管理服务器,所以我们创建了一个非常简单的初始化

脚本和相应的启动连接:

loadb1.test.com:

echo ‘ndb_mgmd -f /var/lib/mysql-cluster/config.ini’ > /etc/init.d/ndb_mgmd

chmod 755 /etc/init.d/ndb_mgmd

update-rc.d ndb_mgmd defaults

三 配置MySQL群集节点(存储节点)

现在我们将分别在sql1.test.com和sql2.test.com上安装mysql-max-5.0.19:

sql1.example.com / sql2.example.com:

groupadd mysql

useradd -g mysql mysql

cd /usr/local/

wget http://dev.mysql.com/get/Downloads/MySQL-5.0/mysql-max-5.0.19-linux-i686-\

glibc23.tar.gz/from/

tar xvfz mysql-max-5.0.19-linux-i686-glibc23.tar.gz

ln -s mysql-max-5.0.19-linux-i686-glibc23 mysql

cd mysql

scripts/mysql_install_db –user=mysql

chown -R root:mysql .

chown -R mysql data

cp support-files/mysql.server /etc/init.d/

chmod 755 /etc/init.d/mysql.server

update-rc.d mysql.server defaults

cd /usr/local/mysql/bin

mv * /usr/bin

cd ../

rm -fr /usr/local/mysql/bin

ln -s /usr/bin /usr/local/mysql/bin

然后我们在每个节点上创建MySQL配置文件/etc/my.cnf :

vi /etc/my.cnf

[mysqld]

ndbcluster

# IP address of the cluster management node

ndb-connectstring=192.168.0.103

[mysql_cluster]

# IP address of the cluster management node

ndb-connectstring=192.168.0.103

确认你在群集管理服务器中输入的是正确的IP地址。

下一步我们分别在每个群集节点上创建数据目录和启动MySQL服务器:

sql1.test.com / sql2.test.com:

mkdir /var/lib/mysql-cluster

cd /var/lib/mysql-cluster

ndbd –initial

/etc/init.d/mysql.server start

(请记住:我们只是在第一次启动MySQL时或loadb1.test.com上面的

/var/lib/mysql-cluster/config.ini发生改变时,才使用ndbd –initial)

现在,是时候给MySQL root帐号设置密码了:

sql1.test.com / sql2.test.com:

mysqladmin -u root password yourrootsqlpassword

我们需要在服务器启动时,启动群集节点,所以我们创建一个ndbd初始化脚本和相应的

系统启动连接:

sql1.test.com / sql2.test.com:

echo ‘ndbd’ > /etc/init.d/ndbd

chmod 755 /etc/init.d/ndbd

update-rc.d ndbd defaults

四 测试MySQL群集

我们的MySQL群集配置工作已经完成,现在是测试它的时间了。在群集管理服务器

(loadb1.test.com)上,运行群集管理客户端ndb_mgm来检查群集节点是否连接:

loadb1.test.com:

ndb_mgm

你将会看到这些:

– NDB Cluster — Management Client –

ndb_mgm>

在命令行输入 show;

show;

输出的信息应该是这样的:

ndb_mgm> show;

Connected to Management Server at: localhost:1186

Cluster Configuration

———————

[ndbd(NDB)] 2 node(s)

id=2 @192.168.0.101 (Version: 5.0.19, Nodegroup: 0, Master)

id=3 @192.168.0.102 (Version: 5.0.19, Nodegroup: 0)

[ndb_mgmd(MGM)] 1 node(s)

id=1 @192.168.0.103 (Version: 5.0.19)

[mysqld(API)] 2 node(s)

id=4 @192.168.0.101 (Version: 5.0.19)

id=5 @192.168.0.102 (Version: 5.0.19)

ndb_mgm>

如果你看到你的节点都已经连接上了。那么一切都很顺利!

输入

quit;

退出 ndb_mgm 客户端控制台。

现在我们在sql1.test.com节点上创建一个测试数据库,并创建一个测试表,

填入一些测试数据:

mysql -u root -p

CREATE DATABASE mysqlclustertest;

USE mysqlclustertest;

CREATE TABLE testtable (i INT) ENGINE=NDBCLUSTER;

INSERT INTO testtable () VALUES (1);

SELECT * FROM testtable;

quit;

(看看上面这个CREATE语句:我们想群集起来的所有数据库的表,必须使用 ENGINE=NDBCLUSTER!

如果你使用其它的ENGINE,那么群集将不会工作!)

SELECT出的结果应该是:

mysql> SELECT * FROM testtable;

+——+

| i |

+——+

| 1 |

+——+

1 row in set (0.03 sec)

现在我们在sql2.test.com节点上创建相同的数据库(是,我们仍然要创建它,但是在testtable创建之后

数据将会被复制到sql2.test.com,因为testtable是使用ENGINE=NDBCLUSTER):

sql2.test.com:

mysql -u root -p

CREATE DATABASE mysqlclustertest;

USE mysqlclustertest;

SELECT * FROM testtable;

SELECT出的结果应该是和上面的sql1.test.com的结果相同:

mysql> SELECT * FROM testtable;

+——+

| i |

+——+

| 1 |

+——+

1 row in set (0.04 sec)

我们看到数据已经从sql1.test.com节点复制到sql2.example.com节点了。现在我们

向testtable中插入另外一行:

sql2.test.com:

INSERT INTO testtable () VALUES (2);

quit;

现在让我们回到sql1.example.com节点上,检查是否能够看见新插入的那一行:

sql1.example.com:

mysql -u root -p

USE mysqlclustertest;

SELECT * FROM testtable;

quit;

阅读(534) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~