博客首页 注册 建议与交流 排行榜 加入友情链接
推荐 投诉 搜索: 帮助

上帝他爷

分别担任CU、ITPUB以及CSDN社区的MySQL版主! 我本来想说我是吃屎的! ^_^
  yueliangdao0608.cublog.cn

关于作者
姓名:杨涛
职业:DBA
年龄:25
位置:中国-深圳
个性介绍:又长了一岁
QQ:38257291
MSN:yueliangdao0608@gmail.com
|| << >> ||
我的分类


[原创]MYSQL的集群的安装与配置,已更新
具体安装与配置:
1)
准备工作:
6台机器,IP地址分别为
192.168.0.(231-236)
MGM节点:192.168.0.231(232)
SQL 节点:192.168.0.233-234
NDBD 节点:192.168.0.235-236
系统都是REDHAT AS 5.0
装了基本的部件,具有联网功能,而且关闭了防火墙。
软件,版本是:
  mysql-5.1.21-beta-linux-i686-glibc23.tar.gz

2)管理节点的安装:(232和231的机器)
    shell> cd /var/tmp
    shell> tar -zxvf   mysql-5.1.21-beta-linux-i686-glibc23.tar.gz
    shell> cd /var/tmp/mysql-5.1.21-beta-linux-i686-glibc23
    shell> mkdir /usr/local/mysql
    shell> cp bin/ndb_mgm* /usr/local/mysql
    shell> cd /usr/local/mysql
    shell> chmod a+x ndb_mgm*
    shell> mkdir data(用来存放管理节点的数据
3)SQL节点和NDBD 节点的安装:(233-236 四台机器)
shell> groupadd mysql
shell> useradd -g mysql mysql
shell> cd /var/tmp
shell> tar -C /usr/local -xzvf mysql-5.1.21-beta-linux-i686-glibc23.tar.gz
shell> mv /usr/local/mysql-5.1.21-beta-linux-i686-glibc23 /usr/local/mysql
shell> cd mysql
shell> scripts/mysql_install_db --user=mysql
shell> chown -R mysql:mysql /usr/local/mysql


SQL节点还要增加下面的步骤才可以:

shell> cp support-files/mysql.server /etc/rc.d/init.d/mysqld
shell> chmod a+x /etc/rc.d/init.d/mysqld
shell> chkconfig --add mysqld
shell> chkconfig mysqld on 注册MYSQL为系统的服务

4)配置NDBD节点:
[root@localhost mysql]# cat /etc/my.cnf
[mysqld]
ndbcluster
#ndb-connectstring=192.168.0.231
#ndb-connectstring=192.168.0.232
这样写是可以连接成功。不过我今天来的时候发现全部DOWN掉了。
ndb-connectstring=192.168.0.231,192.168.0.232
[mysql_cluster]
#ndb-connectstring=192.168.0.231
#ndb-connectstring=192.168.0.232
ndb-connectstring=192.168.0.231,192.168.0.232
[root@localhost mysql]#

5)配置SQL 节点:
[root@localhost mysql]# cat /etc/my.cnf
[mysqld]
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data/
port=3306
user=nobody
socket=/tmp/mysql.sock

ndbcluster
#ndb-connectstring=192.168.0.231
#ndb-connectstring=192.168.0.232
ndb-connectstring=192.168.0.231,192.168.0.232
[ndbd]
connect-string=192.168.0.235
[ndbd]
connect-string=192.168.0.236
[ndbd_mgm]
connect-string=192.168.0.231
[ndbd_mgm]
connect-string=192.168.0.232
[ndbd_mgmd]
config-file=/etc/config.ini
[mysql_cluster]
#ndb-connectstring=192.168.0.231
#ndb-connectstring=192.168.0.232
ndb-connectstring=192.168.0.231,192.168.0.232
[root@localhost mysql]#

6) 配置管理节点:
   [root@localhost ~]# cat /etc/config.ini

[NDBD DEFAULT]
NoOfReplicas=2
DataMemory=600M
IndexMemory=100M

# TCP/IP options:
[TCP DEFAULT]
portnumber=2202

# Management process options:
[NDB_MGMD]
id=1
hostname=192.168.0.231
datadir=/usr/local/mysql/data
[NDB_MGMD]
id=2
hostname=192.168.0.232
datadir=/usr/local/mysql/data

# Options for data node A
[NDBD]
id=5
hostname=192.168.0.235
datadir=/usr/local/mysql/data

# Options for data node B
[NDBD]
id=6
hostname=192.168.0.236
datadir=/usr/local/mysql/data

# SQL node options:
[MYSQLD]
id=3
hostname=192.168.0.233
[MYSQLD]
id=4
hostname=192.168.0.234
[MYSQLD]
[MYSQLD]
[root@localhost ~]#
7)启动管理节点:
[root@localhost mysql]# /usr/local/mysql/ndb_mgmd -f /etc/config.ini
[root@localhost mysql]# ps aux | grep ndb | grep -v grep
root      6230  0.0  0.1  17428  1780 ?        Ssl  22:16   0:00 /usr/local/mysql/ndb_mgmd -f /etc/config.ini
启动成功了。
默认MGMD是后台启动的。

8)启动NDBD节点
[root@localhost mysql]# /usr/local/mysql/bin/ndbd --initial
(只是第一次启动还有添加节点而且恢复的时候要加)
[root@localhost mysql]# ps aux | grep ndb | grep -v grep
root      3191  0.0  0.2  17516  1992 ?        Ss   22:24   0:00 /usr/local/mysql/bin/ndbd --initial
root      3192  4.2 15.3 911740 149120 ?       Sl   22:24   0:00 /usr/local/mysql/bin/ndbd --initial
[root@localhost mysql]#

9)启动SQL 节点:

[root@localhost mysql]# service mysqld start
Starting MySQL. SUCCESS!

10)查看是否连接成功
[root@localhost ~]# /usr/local/mysql/ndb_mgm
-- NDB Cluster -- Management Client --
ndb_mgm> show
Connected to Management Server at: localhost:1186
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=5 @192.168.0.235 (Version: 5.1.21, Nodegroup: 0, Master)
id=6 @192.168.0.236 (Version: 5.1.21, Nodegroup: 0)

[ndb_mgmd(MGM)] 2 node(s)
id=1 @192.168.0.231 (Version: 5.1.21)
id=2 @192.168.0.232 (Version: 5.1.21)

[mysqld(API)] 3 node(s)
id=3 @192.168.0.233 (Version: 5.1.21)
id=4 @192.168.0.234 (Version: 5.1.21)
id=7 (not connected, accepting connect from any host)
id=8 (not connected, accepting connect from any host)

ndb_mgm>

我这个是配置两台管理节点和两台SQL节点以及两台NDBD节点的。以此类推。
以下是我在使用中遇到的错误信息:
 
1、
[mysqld(API)]   2 node(s)
id=4 (not connected, accepting connect from any host)
id=5 (not connected, accepting connect from any host)
2、
[root@localhost ~]# /usr/local/mysql/bin/mysql -uroot -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 5.0.24-max

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use test
Database changed
mysql> show tables;
Empty set, 1 warning (0.00 sec)

mysql> create table t11 (id int) engine=ndb;
ERROR 1050 (42S01): Table 't11' already exists

解决办法:
运行setup或者ntsysv命令进入系统启动设置。
去掉iptables.
关掉防火墙。不过保持sellinux是打开的。

早上还碰到一个错误:

[root@localhost data]# vi ndb_pid6423_error.log
Current byte-offset of file-pointer is: 568


Time: Friday 30 November 2007 - 23:15:28
Status: Permanent error, external action needed
Message: Invalid configuration received from Management Server (Configuration error)
Error: 2350
Error data: Could not connect to ndb_mgmd
Error object:
Program: /usr/local/mysql/bin/ndbd
Pid: 6423
Trace: <no tracefile>
Version: Version 5.1.21 (beta)
***EOM***


~
由于我没有把ndb-connectstring=db1,db2,..dbn
这样的规律写导致,已经解决。

PS:集群的数据节点是非常重要的,如果不能保证一个数据节点正常运行的话,集群也就失去了意义。管理节点在启动了集群后也就没有了意义。所以我在想多个管理节点是否有必要。


发表于: 2007-11-19,修改于: 2008-01-16 11:22,已浏览1343次,有评论11条 推荐 投诉


网友评论
网友: 本站网友 时间:2007-11-22 13:17:51 IP地址:222.66.167.★
你怎么没把你碰到的问题,后来如何解决的过程写出来啊

Blog作者的回复:
留下EMAIL。兄弟。


网友: yueliangdao0608 时间:2007-11-22 13:53:35 IP地址:121.15.49.★
我还没有时间写呢。这个礼拜天我抽空写一下。题目就是随时更新嘛。不要急。

网友: yueliangdao0608 时间:2007-11-29 14:48:26 IP地址:121.34.170.★
今天做了更新,给自己留个印象。

网友: 苯笨鸭 时间:2007-12-01 13:27:29 IP地址:121.34.41.★
学习

网友: 本站网友 时间:2007-12-28 14:14:44 IP地址:219.131.234.★
SQL节点和NDBD 节点

这两个有什么区别?不明白

Blog作者的回复:
SQL节点就是MYSQL服务器。
NDBD节点用来保持集群的稳定运行。


网友: 本站网友 时间:2008-02-22 15:19:14 IP地址:60.216.102.★
您好!我问一下mysql集群的问题,我把 NDBD 和mysqld服务器单独的时候, 我在mysqld上新建表后,表文件都在mysqld的数据目录里,NDBD服务器没有记录。如果我把ndbd和mysqld放在一起。数据是可以同步的。

Blog作者的回复:
把你的错误贴出来看看。


网友: 本站网友 时间:2008-03-09 21:38:01 IP地址:222.212.226.★
您好, 

如果我有个数据库在10G左右, 每个数据节点应该准备多少内存??

Blog作者的回复:
5.0的数据全部保存在内存里的。你想想看。


网友: 本站网友 时间:2008-05-08 09:54:18 IP地址:210.74.227.★
写的很好~~~~~支持!!

随便问下: 如果新增数据库节点,该架构能支持在线添加嘛!! 就不是不影响前台用户应用程序的使用吗??

谢谢!!

Blog作者的回复:
可以在线添加


网友: wlong2000joint@gmail.com 时间:2008-06-24 10:52:37 IP地址:222.70.168.★
请问在配置SQLD节点的时候,下面这段配置有什么意义,我在手册里没有找到,谢谢!
[ndbd]
connect-string=192.168.0.235
[ndbd]
connect-string=192.168.0.236
[ndbd_mgm]
connect-string=192.168.0.231
[ndbd_mgm]
connect-string=192.168.0.232
[ndbd_mgmd]
config-file=/etc/config.ini

Blog作者的回复:
Tell the SQL Node some other string about the cluster.


网友: wlong2000joint@gmail.com 时间:2008-06-24 10:56:49 IP地址:222.70.168.★
另外,我也是两台ndbd,不过只有1台mgm,但是我把NoOfReplicas=2设置为2的时候,启动报错:
Error data: Illegal configuration change. Initial start needs to be performed  when changing no of replicas (1 != 2)

Blog作者的回复:
Initial start needs to be performed  when changing no of replicas (1 != 2)

The hint is obvious.


网友: 本站网友 时间:2008-07-16 17:43:19 IP地址:210.143.35.★
楼主好,我最近也在配置cluster,遇到了ndbd --initial 错误的问题,麻烦楼主帮看一下。
问题现象:http://topic.csdn.net/u/20080716/10/41df975f-b049-4c22-935c-aee636039ec9.html

Blog作者的回复:
给你回复了!


 发表评论