每个节点的操作系统都是Redhat 5.5 i686
用途 |
主机名 |
Ip |
管理节点1 |
Mgm |
192.168.9.27 |
数据节点1 |
Ndb1 |
192.168.9.26 |
数据节点2 |
Ndb2 |
192.168.9.28 |
Sql节点1 |
Mysqld1 |
192.168.9.26 |
Sql节点2 |
Mysqld2 |
192.168.9.28 |
这里是为了节约机器,所以一台机器安两个sql节点和数据节点ndb,计算机名和ip地址如上。这里为了统一写下: DB1 192.168.9.26
DB2 192.168.9.28
1.建立mysql用户组,MySQL-max-5.0.24-linux-i686.tar.gz解压后移动到/usr/local/MySQL
2. [root@db1 software]#useradd –g MySQL MySQL
3. [root@db1 ]# 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
3.将mysql写入服务,初始化mysql的root密码
4.停止MYsql服务,修改配置文件
在最下面添加内容:
保存退出,先不要启动MySQL服务
管理节点的配置也很简单,但它是MySQL cluster配置中最关键的一步。
1, 解压MySQL-max-5.0.24-linux-i686.tar.gz包,拷贝包里bin目录下的ndb_mgm和ndb_mgmd两文件到/usr/bin/目录中(看一下是否具有可执行权限)。
2, 创建管理节点数据库目录,并且在此目录中建立配置文件config.ini
添加如下内容:
保存退出
四、MySQL cluster的启动
MySQL cluster的启动顺序:管理节点--数据节点-SQL节点。
1,[root@mgm MySQL-cluster]# ndb_mgmd -f ./config.ini
如果没有提示,表示启动成功,Ps -aux查看进程,看是否已经启动
2,分别在DB1和DB2上启动数据节点
3, 启动SQL节点上的MySQL服务
4,全部节点都启动成功后,在MGM节点上用ndb_mgm工具的show命令查看群集的状态
Cluster Configuration
---------------------
[ndbd(NDB)] 2 node(s)
id=2 @192.168.9.26 (Version: 5.0.24, Nodegroup: 0, Master)
id=3 @192.168.9.28 (Version: 5.0.24, Nodegroup: 0)
id=1 @192.168.9.27 (Version: 5.0.24)
id=4 @192.168.9.26 (Version: 5.0.24)
id=5 @192.168.9.28 (Version: 5.0.24)
声明一点,要使用MySQL cluster,表的存储引擎必须是ndb的。
在DB1(192.168.20.26)中创建表,插入数据:
mysql> use test
Database changed
mysql> show tables;
Empty set (0.06 sec)
mysql> create table t1(id int) engine=ndb;
Query OK, 0 rows affected (0.39 sec)
mysql> insert into t1 value('11'),('12');
然后在DB2(192.168.20.28)上看到了刚才创建的表和表里的数据
mysql> use test
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| t1 |
+----------------+
1 row in set (0.03 sec)
mysql> select * from t1;
+------+
| id |
+------+
| 11 |
| 12 |
+------+
2 rows in set (0.03 sec
到此,MySQL的安装和配置基本完成。
注意:如果在db1上创建一个数据库是不能同步到db2上去的,两边需要有相同名字的库名,库中的数据才能同步过去