MySQL Cluster集群配置方案


#/bin/bash
#MySQL Cluster集群配置方案
#用途           主机名     IP
#管理节点     ndb_mgmd     192.168.40.129
#数据节点1     ndb1         192.168.40.131
#数据节点2     ndb2         192.168.40.132
#sql节点1     mysqld1     192.168.40.131
#sql节点2     mysqld2     192.168.40.132
#所需软件推荐用mysql-max-5.0.24

#开始安装

#sql、数据节点安装
#在每个节点计算机上都采用mysql 用户来运行Cluster,因此执行如下命令添加相关用户
groupadd mysql
useradd -g mysql mysql

#sql节点、数据节点安装mysql的二进制安装包
wget http://downloads.skysql.com/archives/mysql-5.0/mysql-max-5.0.24-linux-i686.tar.gz
tar  -zxf  mysql-max-5.0.24-linux-i686.tar.gz
mv  mysql-max-5.0.24-linux-i686  /usr/local/mysql

#拷贝MySQL配置文件到/etc/下,初始化数据库,设置目录权限,启动MySQL
cd /usr/local/mysql
\cp  -rf support-files/my-medium.cnf /etc/my.cnf
scripts/mysql_install_db --user=mysql 
chown -R mysql.mysql /usr/local/mysql
bin/MySQLd_safe --user=mysql &

#将MySQL写入服务,初始化MySQL的root密码
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
bin/mysqladmin -u root password 123123

vi /etc/my.cnf 在最下面添加内容:
[mysqld]
ndbcluster 
ndb-connectstring=192.168.40.129

[mysql_cluster]
ndb-connectstring=192.168.40.129

#管理节点安装
tar -zxvf mysql-max-5.0.24-linux-i686.tar.gz
mkdir /usr/local/mysql
mkdir /usr/local/mysql/data
cd mysql-max-5.0.24-linux-i686/bin
cp ndb_mgm* /usr/local/mysql
chown -R mysql.mysql /usr/local/mysql

#配置管理节点
vim /usr/local/mysql/config.ini

[ndbd default]
NoOfReplicas=2
DataMemory=200M
IndexMemory=100M
[tcp default]
portnumber=4444  #此端口为数据节点使用的端口
[ndb_mgmd]

#set Management server
hostname=192.168.40.129

#Management save log directory
datadir=/usr/local/mysql/data/

#set Storage server
[ndbd]
hostname=192.168.40.131
datadir=/usr/local/mysql/data/
[ndbd]
hostname=192.168.40.132
datadir=/usr/local/mysql/data/

#set sql server
[mysqld]
hostname=192.168.40.131
[mysqld]
hostname=192.168.40.132

#启动mysql cluster
#较为合理的启动顺序是,首先启动管理节点服务器,然后启动存储节点服务器,最后才启动SQL节点服务器:
#在管理节点服务器上,执行以下命令启动MGM节点进程:

/usr/local/mysql/ndb_mgmd -f /usr/local/mysql/config.ini

#必须用参数“-f”或“--config-file”告诉 ndb_mgm 配置文件所在位置,默认是在ndb_mgmd相同目录下。
#在每台存储节点服务器上,如果是第一次启动ndbd进程的话,必须先执行以下命令:

/usr/local/mysql/bin/ndbd --initial

#注意,仅应在首次启动ndbd时,或在备份/恢复数据或配置文件发生变化后重启ndbd时使用“--initial”参数。因为该参数会使节点删除由早期ndbd实例创建的、用于恢复的任何文件,包括用于恢复的日志文件。
#如果不是第一次启动,直接运行如下命令即可:

/usr/local/mysql/bin/ndbd

#最后,运行以下命令启动SQL节点服务器:
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &
#如果一切顺利,也就是启动过程中没有任何错误信息出现,那么就在管理节点服务器上运行如下命令:

 

[root@localhost mysql]# /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=2    @192.168.40.131  (Version: 5.0.24, Nodegroup: 0)
id=3    @192.168.40.132  (Version: 5.0.24, Nodegroup: 0, Master)

[ndb_mgmd(MGM)]    1 node(s)
id=1    @192.168.40.129  (Version: 5.0.24)

[mysqld(API)]    2 node(s)
id=4    @192.168.40.131  (Version: 5.0.24)
id=5    @192.168.40.132  (Version: 5.0.24)

#测试
#在mysqld1节点上,用root在test数据库上新建一个t1的表
mysql> use test;
Database changed
mysql> show tables;
Empty set (0.11 sec)
mysql> create table t1(a int) engine=ndb;
Query OK, 0 rows affected (0.74 sec)
mysql> insert into t1 values(100);
Query OK, 1 row affected (0.32 sec)

#在mysqld2节点2上,用root查看效果
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| t1             |
+----------------+
1 row in set (0.00 sec)

相关内容