MySQL Cluster 是MySQL适合于分布式计算环境的高实用、高冗余版本。它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器。在MyQL 5.0及以上的二进制版本中、以及与最新的Linux版本兼容的RPM中提供了该存储引擎。
要想获得MySQL Cluster 的功能,必须安装 mysql-server 和 mysql-max RPM。Standard版本不支持集群部署。
1.管理节点(192.168.1.200):
# tar zxf mysql-max-5.1.5-alpha-linux-x86_64-glibc23.tar.gz
# cd mysql-max-5.1.5-alpha-linux-x86_64-glibc23
# mv bin/ndb_mgm* /usr/bin/ (获得两个可执行文件ndb_mgm和ndb_mgmd)
配置管理节点:
# mkdir /var/lib/mysql-cluster
# cd /var/lib/mysql-cluster
# vi config.ini
[NDBD DEFAULT]
NoOfReplicas=2
[MYSQLD DEFAULT]
[NDB_MGMD DEFAULT]
[TCP DEFAULT]
# Managment Server
[NDB_MGMD]
HostName=192.168.1.200
# Storage Engines
[NDBD]
HostName=192.168.1.201
DataDir=/var/lib/mysql-cluster
[NDBD]
HostName=192.168.1.202
DataDir=/var/lib/mysql-cluster
[MYSQLD]
[MYSQLD]
启动管理节点服务器:
/usr/bin/ndb_mgmd -f /var/lib/mysql-cluster/config.ini
2.数据节点(192.168.1.201,192.168.1.202)和sql节点(192.168.1.201,192.168.1.202):
# cd /usr/local/
# groupadd mysql
# useradd -g mysql mysql
# tar zxf mysql-max-5.1.5-alpha-linux-x86_64-glibc23.tar.gz
# mv mysql-max-5.1.5-alpha-linux-x86_64-glibc23 mysql
# cd mysql
# scripts/mysql_install_db --user=mysql
# chown -R root .
# chown -R mysql data
# chgrp -R mysql .
配置集群服务器并启动MySQL :
在数据节点和SQL节点中都需要进行如下改动:
[root@localhost local]# cat /etc/my.cnf
[mysqld]
ndbcluster
ndb-connectstring=192.168.1.200
[mysql_cluster]
ndb-connectstring=192.168.1.200
保存退出后,建立数据目录并启动MySQL
# mkdir /var/lib/mysql-cluster
# cd /var/lib/mysql-cluster
# /usr/local/mysql/bin/ndbd --initial
仅应在首次启动ndbd时,或在备份/恢复数据或配置文件发生变化后重启ndbd时使用“--initial”参数。因为该参数会使节点删除由
早期ndbd实例创建的、用于恢复的任何文件,包括用于恢复的日志文件。
如果不是第一次启动,无需加“--initial”参数。
/usr/local/mysql/bin/mysqld_safe --user=mysql &
mysqld无法正常启动,查看日志,报错如下:
mysqld started
InnoDB: Started; log sequence number 0 43634
[ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.host' doesn't exist
mysqld ended
解决办法:
/usr/local/mysql/bin/mysqld_safe --skip-grant-tables &
在管理节点上进行检测
#ndb_mgm
ndb_mgm>show
合理的启动顺序是,首先启动管理节点服务器,然后启动存储节点服务器,最后才启动SQL节点服务器
设置开机启动:
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
# chmod +x /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld
3.集群环境启动后,在sql节点登入mysql数据库,创建表进行检测
# /usr/local/mysql/bin/mysql (未更改root密码)
以下操作参照mysql的正常操作
参考:http://linux.chinaunix.net/techdoc/database/2008/08/06/1023805.shtml