当前位置:Gxlcms > mysql > MySQL集群在IBM服务器上配置安装详解_MySQL

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

时间:2021-07-01 10:21:17 帮助过:27人阅读

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

  1. [root@db1 software]#groupadd MySQL
  2. [root@db1 software]#useradd –g MySQL MySQL
  3. [root@db1 software]# tar -zxf MySQL-max-5.0.24-linux-i686.tar.gz
  4. [root@db1 software]#mv MySQL-max-5.0.24-linux-i686 MySQL
  5. [root@db1 software]#mv MySQL /usr/local/MySQL

2, 拷贝MySQL配置文件到/etc/下,初始化数据库,设置目录权限,启动MySQL

  1. [root@db1 software]# cd /usr/local/MySQL/
  2. [root@db1 MySQL]# cp support-files/my-medium.cnf /etc/my.cnf
  3. [root@db1 MySQL]# scripts/MySQL_install_db --user=MySQL
  4. [root@db1 MySQL]#chown -R root .
  5. [root@db1 MySQL]#chown -R MySQL data
  6. [root@db1 MySQL]#chgrp -R MySQL .
  7. [root@db1 MySQL]# bin/MySQLd_safe --user=MySQL &

3, 将MySQL写入服务,初始化MySQL的root密码

  1. [root@db1 MySQL]# cp support-files/MySQL.server /etc/rc.d/init.d/MySQLd
  2. [root@db1 MySQL]# chkconfig --add MySQLd
  3. [root@db1 MySQL]# bin/MySQLadmin -u root password 123456

4, 停止MySQL服务,修改配置文件

  1. [root@db1 MySQL]# service MySQLd stop
  2. [root@db1 MySQL]# vi /etc/my.cnf

在最下面添加内容:

  1. [MySQLD]
  2. ndbcluster
  3. ndb-connectstring=192.168.20.203
  4. [MySQL_CLUSTER]
  5. 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/目录中(看一下是否具有可执行权限)。

  1. [root@mgm MySQL-max-5.0.24-linux-i686]# cd bin/ndb_mgm* /usr/bin

2, 创建管理节点数据库目录,并且在此目录中建立配置文件config.ini

  1. Mkdir /usr/local/MySQL-cluster
  2. Cd /usr/local/MySQL-cluster
  3. Vi config.ini

添加如下内容:

  1. [NDBD DEFAULT]
  2. NoOfReplicas=2
  3. DataMemory=200M
  4. IndexMemory=100M
  5. [TCP DEFAULT]
  6. portnumber=2202
  7. [NDB_MGMD]
  8. hostname=192.168.20.203
  9. datadir=/usr/local/MySQL-cluster
  10. [NDBD]
  11. hostname=192.168.20.201
  12. datadir=/usr/local/MySQL/data
  13. [NDBD]
  14. hostname=192.168.20.202
  15. datadir=/usr/local/MySQL/data
  16. [MySQLD]
  17. hostname=192.168.20.201
  18. [MySQLD]
  19. hostname=192.168.20.202

保存退出

四,MySQL cluster的启动

MySQL cluster的启动顺序:管理节点--数据节点-SQL节点。

1,[root@mgm MySQL-cluster]# ndb_mgmd -f ./config.ini

如果没有提示,表示启动成功,Ps -aux查看进程,看是否已经启动

  1. root 4700 0.0 0.6 5984 1668 ? Ssl 14:20 0:00 ndb_mgmd -f ./config.ini

2,分别在DB1和DB2上启动数据节点

  1. [root@db1 MySQL]# bin/ndbd –initial

问题出来了:

提示:

  1. [root@db1 MySQL]# bin/ndbd --initial
  2. Unable to connect with connect string: nodeid=0,192.168.20.203:1186
  3. Retrying every 5 seconds. Attempts left: 12 11 10 9 8 7 6 5 4 3 2 1, failed.
  4. error=2350
  5. 2010-05-05 14:21:21 [ndbd] INFO -- Error handler restarting system
  6. 2010-05-05 14:21:21 [ndbd] INFO -- Error handler shutdown completed - exiting
  7. sphase=0
  8. exit=-1

在网上找答案,出这个问题的人还真不少,而且答案五花八门,统统试了一遍,还是不行,问题到底出在哪里呢?

查看错误日志,内容如下:

  1. [root@db1 MySQL]# more ndb_pid4968_error.log
  2. Current byte-offset of file-pointer is: 568
  3. Time: Wednesday 5 May 2010 - 14:17:25
  4. Status: Permanent error, external action needed
  5. Message: Invalid configuration received from Management Server (Configuration error)
  6. Error: 2350
  7. Error data: Could not connect to ndb_mgmd
  8. Error object:
  9. Program: bin/ndbd
  10. Pid: 4968
  11. Trace: <no tracefile>
  12. Version: Version 5.0.24
  13. ***EOM***

看带下划线处,不能连接到管理节点,我的管理节点启动是ok的啊,突然一下明白了,防火墙是开着的(系统默认是开启的),关掉防火墙和SELinux,重新ndbd –initial,启动成功

3, 启动SQL节点上的MySQL服务

  1. Service MySQLd start

4,全部节点都启动成功后,在MGM节点上用ndb_mgm工具的show命令查看群集的状态

  1. [root@mgm ~]# ndb_mgm
  2. -- NDB Cluster -- Management Client --
  3. ndb_mgm> show
  4. Connected to Management Server at: localhost:1186
  5. Cluster Configuration
  6. ---------------------
  7. [ndbd(NDB)] 2 node(s)
  8. id=2 @192.168.20.201 (Version: 5.0.24, Nodegroup: 0, Master)
  9. id=3 @192.168.20.202 (Version: 5.0.24, Nodegroup: 0)
  10. [ndb_mgmd(MGM)] 1 node(s)
  11. id=1 @192.168.20.203 (Version: 5.0.24)
  12. [MySQLd(API)] 2 node(s)
  13. id=4 @192.168.20.201 (Version: 5.0.24)
  14. id=5 @192.168.20.202 (Version: 5.0.24)

看蓝色标示的字段,可以看到管理节点,sql节点和数据节点,还有一个连接端口。

五.MySQL cluster的测试

声明一点,要使用MySQL cluster,表的存储引擎必须是ndb的。

在DB1(192.168.20.201)中创建表,插入数据:

  1. MySQL> use test
  2. Database changed
  3. MySQL> create table mingxing(name char(3))engine=ndb;
  4. Query OK, 0 rows affected (0.57 sec)
  5. MySQL> insert into mingxing value('jay'),('cyl'),('ldh');
  6. Query OK, 3 rows affected (0.04 sec)
  7. Records: 3 Duplicates: 0 Warnings: 0

然后再DB2(192.168.20.202)上看到了刚才创建的表和表里的数据

  1. MySQL> use test
  2. Database changed
  3. MySQL> show tables;
  4. +----------------+
  5. | Tables_in_test |
  6. +----------------+
  7. | mingxing |
  8. +----------------+
  9. 1 row in set (0.01 sec)
  10. MySQL> select * from mingxing;
  11. +------+
  12. | name |
  13. +------+
  14. | jay |
  15. | cyl |
  16. | ldh |
  17. +------+
  18. 3 rows in set (0.00 sec)

到此,MySQL的安装和配置基本完成。

注意: 如果在db1上创建一个数据库是不能同步到db2上去的,两边需要有相同名字的库名,库中的数据才能同步过去

人气教程排行