您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

MySQL集群在IBM服务器上配置安装详解_MySQL

2025/11/25 18:26:38发布29次查看
ibmmysql集群ibm服务器服务器集群mysql安装
本文只是介绍安装和配置,关于一些名词和原理,请参考mysql手册。
一.环境:
ibm x3560
vmware esx 4.0
centos 5.3 –32bit
mysql-max-5.0.24-linux-i686.tar.gz
为了快速搭建所需环境,我选择了一台ibm服务器安装了vmware esx 4.0,用vm的ovf模板部署了3台centos,一台作为管理(mgm),节点两台作为sql节点和数据节点。计算机名和ip地址如下:
db1    192.168.20.201
db2    192.168.20.202
mgm   192.168.20.203
二,在db1和db2上部署mysql(配置过程相同)
听说mysql5.1以及集成了mysql集群功能,但是看了好多资料(包括mysql5.1手册),都没有介绍安装配置的方法,很郁闷,最后还是选择了mysql-max-5.0.24这个版本,mysql-max是二进制的包,所以也省去了安装的麻烦,只需要几步简单的设置。
1, 建立mysql用户组,mysql-max-5.0.24-linux-i686.tar.gz解压后移动到/usr/local/mysql
[root@db1 software]#groupadd mysql  [root@db1 software]#useradd –g mysql mysql  [root@db1 software]# tar  -zxf  mysql-max-5.0.24-linux-i686.tar.gz  [root@db1 software]#mv  mysql-max-5.0.24-linux-i686  mysql  [root@db1 software]#mv mysql /usr/local/mysql 
2, 拷贝mysql配置文件到/etc/下,初始化数据库,设置目录权限,启动mysql
[root@db1 software]# cd /usr/local/mysql/  [root@db1 mysql]# cp support-files/my-medium.cnf /etc/my.cnf  [root@db1 mysql]# scripts/mysql_install_db --user=mysql  [root@db1 mysql]#chown -r root .  [root@db1 mysql]#chown -r mysql data  [root@db1 mysql]#chgrp -r mysql .  [root@db1 mysql]# bin/mysqld_safe --user=mysql & 
3, 将mysql写入服务,初始化mysql的root密码
[root@db1 mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld  [root@db1 mysql]# chkconfig --add mysqld  [root@db1 mysql]# bin/mysqladmin -u root password 123456 
4, 停止mysql服务,修改配置文件
[root@db1 mysql]# service mysqld stop  [root@db1 mysql]# vi /etc/my.cnf 
在最下面添加内容:
[mysqld]  ndbcluster  ndb-connectstring=192.168.20.203     [mysql_cluster]  ndb-connectstring=192.168.20.203 
保存退出,先不要启动mysql服务
三,部署管理节点
管理节点的配置也很简单,但它是mysql cluster配置中最关键的一步。
1, 解压mysql-max-5.0.24-linux-i686.tar.gz包,拷贝包里bin目录下的ndb_mgm和ndb_mgmd两文件到/usr/bin/目录中(看一下是否具有可执行权限)。
[root@mgm mysql-max-5.0.24-linux-i686]# cd bin/ndb_mgm* /usr/bin 
2, 创建管理节点数据库目录,并且在此目录中建立配置文件config.ini
mkdir /usr/local/mysql-cluster  cd /usr/local/mysql-cluster  vi config.ini 
添加如下内容:
[ndbd default]  noofreplicas=2 datamemory=200m indexmemory=100m    [tcp default]  portnumber=2202    [ndb_mgmd]     hostname=192.168.20.203  datadir=/usr/local/mysql-cluster     [ndbd]     hostname=192.168.20.201  datadir=/usr/local/mysql/data     [ndbd]     hostname=192.168.20.202  datadir=/usr/local/mysql/data     [mysqld]  hostname=192.168.20.201     [mysqld]  hostname=192.168.20.202 
保存退出
四,mysql cluster的启动
mysql cluster的启动顺序:管理节点--数据节点-sql节点。
1,[root@mgm mysql-cluster]# ndb_mgmd -f ./config.ini
如果没有提示,表示启动成功,ps -aux查看进程,看是否已经启动
root  4700  0.0 0.6   5984 1668 ?    ssl 14:20   0:00 ndb_mgmd -f ./config.ini 
2,分别在db1和db2上启动数据节点
[root@db1 mysql]# bin/ndbd –initial 
问题出来了:
提示:
[root@db1 mysql]# bin/ndbd --initial  unable to connect with connect string: nodeid=0,192.168.20.203:1186  retrying every 5 seconds. attempts left: 12 11 10 9 8 7 6 5 4 3 2 1, failed.  error=2350 2010-05-05 14:21:21 [ndbd] info     -- error handler restarting system  2010-05-05 14:21:21 [ndbd] info     -- error handler shutdown completed - exiting  sphase=0 exit=-1 
在网上找答案,出这个问题的人还真不少,而且答案五花八门,统统试了一遍,还是不行,问题到底出在哪里呢?
查看错误日志,内容如下:
 [root@db1 mysql]# more ndb_pid4968_error.log  current byte-offset of file-pointer is: 568                           time: wednesday 5 may 2010 - 14:17:25  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: bin/ndbd  pid: 4968  trace: no tracefile> version: version 5.0.24  ***eom*** 
看带下划线处,不能连接到管理节点,我的管理节点启动是ok的啊,突然一下明白了,防火墙是开着的(系统默认是开启的),关掉防火墙和selinux,重新ndbd –initial,启动成功
3, 启动sql节点上的mysql服务
service mysqld start 
4,全部节点都启动成功后,在mgm节点上用ndb_mgm工具的show命令查看群集的状态    
        [root@mgm ~]# ndb_mgm  -- ndb cluster -- management client --  ndb_mgm> show  connected to management server at: localhost:1186  cluster configuration  ---------------------  [ndbd(ndb)]     2 node(s)  id=2    @192.168.20.201 (version: 5.0.24, nodegroup: 0, master)  id=3    @192.168.20.202 (version: 5.0.24, nodegroup: 0)           [ndb_mgmd(mgm)] 1 node(s)  id=1    @192.168.20.203 (version: 5.0.24)           [mysqld(api)]   2 node(s)  id=4    @192.168.20.201 (version: 5.0.24)  id=5    @192.168.20.202 (version: 5.0.24) 
看蓝色标示的字段,可以看到管理节点,sql节点和数据节点,还有一个连接端口。
五.mysql cluster的测试
声明一点,要使用mysql cluster,表的存储引擎必须是ndb的。
在db1(192.168.20.201)中创建表,插入数据:
 mysql> use test  database changed     mysql> create table mingxing(name char(3))engine=ndb;  query ok, 0 rows affected (0.57 sec)     mysql> insert into mingxing value('jay'),('cyl'),('ldh');  query ok, 3 rows affected (0.04 sec)  records: 3 duplicates: 0 warnings: 0 
然后再db2(192.168.20.202)上看到了刚才创建的表和表里的数据
mysql> use test  database changed  mysql> show tables;  +----------------+  | tables_in_test |  +----------------+  | mingxing      |  +----------------+  1 row in set (0.01 sec)     mysql> select * from mingxing;  +------+  | name |  +------+  | jay |  | cyl |  | ldh |  +------+  3 rows in set (0.00 sec) 
到此,mysql的安装和配置基本完成。
注意: 如果在db1上创建一个数据库是不能同步到db2上去的,两边需要有相同名字的库名,库中的数据才能同步过去
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product