MySQL Cluster是MySQL和NDB存储引擎的组合。MySQL群集由一组计算机组成,每台计算机运行一个或多个进程,这些进程可能包括MySQL服务器,数据节点,管理服务器以及数据访问程序。
本文解释了如何设置一个小型MySQL集群来做一些基本的测试,NDB API开发,或者只是学习MySQL集群,它描述了如何设置一个有限的MySQL集群安装,可以在本地工作站上运行,当然,这个设置不能用于生产环境。
首先,从安装最新的MySQL社区版本开始,或者安装MySQL的Max版本(包括MySQL Cluster),或者安装Standard版本(包含群集存储引擎和工具)。
在没有启动MySQL服务器的情况下,在文本编辑器中打开或创建文件/etc/config.ini,然后添加以下行:# This configuration should not be used in production!
[NDBD DEFAULT]
NoOfReplicas = 2
DataMemory = 80M # 80M is default
IndexMemory = 18M # 18M is default
DataDir = /var/mysql-cluster
LockPagesInMainMemory = 1 # Make sure not to use swap
[NDB_MGMD DEFAULT]
DataDir = /var/mysql-cluster
[NDB_MGMD]
HostName = localhost
[NDBD]HostName = localhost
[NDBD]
HostName = localhost
[MYSQLD]
[MYSQLD]
[API]
接下来,通过打开或创建文件/etc/my.cnf并添加以下文本来配置MySQL服务器:[mysqld]
datadir=/var/mysql
ndbcluster
ndb_connectstring="localhost"
现在你已经准备好启动MySQL集群:首先启动管理节点,该节点将保留使其他节点可用的配置。不必是root来启动它,但是你必须确保所有目录都可由启动它的用户写入,从命令行输入以下内容以启动管理节点:ndb_mgmd -f /etc/config.ini
接下来,你需要从命令行启动数据节点,如下所示:ndbd -c localhost
ndbd -c localhost
要检查正在运行的内容,可以通过从命令行输入以下命令来使用管理客户机:ndb_mgm -c localhost
ndb_mgm> SHOW
注意,第二行是从管理客户端内部输入的,并且只输入SHOW语句,它应该返回类似下面的结果:[ndbd(NDB)] 2 node(s)
id=2 @127.0.0.1 (Version: 5.0.41, starting, Nodegroup: 0, Master)
id=3 @127.0.0.1 (Version: 5.0.41, starting, Nodegroup: 0)
[ndb_mgmd(MGM)] 1 node(s)
id=1 (Version: 5.0.41)
[mysqld(API)] 3 node(s)
id=4 (not connected, accepting connect from any host)
id=5 (not connected, accepting connect from any host)
id=6 (not connected, accepting connect from any host)
在管理客户机中执行SHOW命令几次,直到'starting'状态消息消失,最后一个启动的进程是MySQL服务器,现在像往常一样启动MySQL,或者输入如下内容:mysqld_safe --defaults-file=/etc/my.cnf &
如果一切顺利,MySQL应该运行,现在可以使用NDB存储引擎,在使用MySQL客户端作为root登录MySQL或使用CREATE privileges登录MySQL后,尝试创建表:CREATE TABLE table1 (
col_id INT NOT NULL AUTO_INCREMENT,
col1 VARCHAR(20),
PRIMARY KEY (col_id)
) ENGINE=NDB;
如果你能够做到这一点而没有错误,则说明你已在运行基本的MySQL群集。设置生产环境是类似的,但是你需要更多的机器和更高级的配置。