mysql集群安装配置_mysql集群安装配置

mysql集群安装配置

******作者:杨岗涛******

******QQ:282680900*****

*****整理与:20100505****

本文只是介绍安装和配置,关于一些名词和原理,请参考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地址如下:

DB1192.168.20.201

DB2192.168.20.202

MGM192.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:

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节点和数据节点,还有一个连接端口。

五.Msyql 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上去的,两边需要有相同名字的库名,库中的数据才能同步过去

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值