MYSQL
集群安装配置
撰写人:hx10
日期:2010/7/1 hangzhou
Blog:http://hi.baidu.com/hx10
系统:Linux5.5
mysql软件:mysql-cluster-gpl-7.1.4b-linux-i686-glibc23.tar.gz
http://dev.mysql.com/get/Downloads/MySQL-Cluster-7.1/mysql-cluster-gpl-7.1.4b-linux-i686-glibc23.tar.gz/from/http://gd.tuwien.ac.at/db/mysql/
数据节点1:10.80.11.203
数据节点2:10.80.11.204
管理节点:10.80.11.205
sql节点:10.80.11.203,10.80.11.204
1.
管理节点的安装
#groupadd mysql
#useradd mysql -g mysql
#mv mysql-cluster-gpl-7.1.4b-linux-i686-glibc23.tar.gz /usr/local/
#cd /usr/local/
#tar zxvf mysql-cluster-gpl-7.1.4b-linux-i686-glibc23.tar.gz
#mv mysql-cluster-gpl-7.1.4b-linux-i686-glibc23 mysql
#chown -R mysql:mysql mysql
#cd mysql
#scripts/mysql_install_db --user=mysql
2.
配置管理节点
#mkdir /var/lib/mysql-cluster
#cd /var/lib/mysql-cluster
#vim config.ini
[ndbd default]
NoOfReplicas=2
DataMemory=80M
IndexMemory=18M
[ndb_mgmd]
Id=1
Hostname=10.80.11.205 //管理IP
datadir=/usr/local/mysql/logs
[ndbd]
Id=2
Hostname=10.80.11.203 //数据节点1
datadir=/usr/local/mysql/data/ //数据文件位置
[ndbd]
Id=3
Hostname=10.80.11.204 //数据节点2
datadir=/usr/local/mysql/data/ //数据文件位置
[MYSQLD]
[MYSQLD]
3.
安装配置数据节点
这里
2
台机器数据节点安装是相同的
.
#groupadd mysql
#useradd mysql -g mysql
#mv mysql-cluster-gpl-7.1.4b-linux-i686-glibc23.tar.gz /usr/local/
#cd /usr/local/
#tar zxvf mysql-cluster-gpl-7.1.4b-linux-i686-glibc23.tar.gz
#mv mysql-cluster-gpl-7.1.4b-linux-i686-glibc23 mysql
#chown -R mysql:mysql mysql
#cd mysql
#scripts/mysql_install_db --user=mysql
#cp support-files/my-medium.cnf /etc/my.cnf
#cp support-files/mysql.server /etc/init.d/mysqld
#vi /etc/my.cnf
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
socket = /tmp/mysql.sock
skip-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
log-bin=mysql-bin
binlog_format=mixed
server-id = 1
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
[myisamchk]
key_buffer_size = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
[mysqld]
datadir=/usr/local/mysql/data/
ndbcluster
ndb-connectstring=10.80.11.205
[mysql_cluster]
ndb-connectstring=10.80.11.205
[ndb_mgm]
connect-string=10.80.11.205
[ndb_mgmd]
config-file=/var/lib/mysql-cluster/config.ini
4.
启动服务
在管理节点启动相关服务
#/usr/local/mysql/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini
#netstat –lntpu
看到
1186
开放说明启动正常
在
2
个数据节点启动相关服务
#/usr/local/mysql/bin/ndbd --initial
#service mysqld start
看到
nbdb
服务和
3306
端口说明启动
OK
5
.功能测试
在管理节点上查看服务状态
#/usr/local/mysql/bin/ndb_mgm
ndb_mgm> show
可以看到这里的数据节点、管理节点、
sql
节点都是正常的
测试一:
现在我们在其中一个数据节点上进行相关数据库的创建
,
然后到另外一个数据节点上看看数据是否同步
在数据节点
1
上执行:
# /usr/local/mysql/bin/mysql -u root –p
mysql>show databases;
mysql>create database aa;
mysql>use aa
mysql>CREATE TABLE ctest2 (i INT) ENGINE=NDB;
//
这里必须指定数据库表的引擎为
NDB,
否则同步失败
mysql> INSERT INTO ctest2 () VALUES (1);
mysql> SELECT * FROM ctest2;
然后在数据节点
2
上看数据是否同步过来了
经过测试,在非
master
上创建数据,可以同步到
master
上
查看表的引擎是不是
NDB
,
>show create table
表名;
测试二、
关闭一个数据节点
,在另外一个节点写输入,开启关闭的节点,看数据是否同步过来
首先把数据节点
1
重启,然后在节点
2
上添加数据
在节点
2
上操作如下:
mysql>create database bb;
mysql>use bb
mysql>CREATE TABLE ctest3 (i INT) ENGINE=NDB;
mysql> INSERT INTO ctest2 () VALUES (3333);
mysql> SELECT * FROM ctest2;
此时在管理节点上看到信息如下:
等节点
1
启动完毕,启动节点
1
的服务
#/usr/local/mysql/bin/ndbd --initial
#service mysqld start
然后登录进去查看数据
# /usr/local/mysql/bin/mysql -u root –p
可以看到数据已经同步过来了,说明数据可以双向同步了。
发现一个问题,让
master
重启后,备节点就变成
master
了,当以前的
master
启动后,不会主动切换回
master
的角色。