MySQL Cluster学习笔记——安装

因为毕设需要学习了一点关于MySQL Cluster的东西。为避免遗忘,从今天起整理一下学过的东西。同时也希望这些学习笔记能帮助到和我一样的初学者。


安装

参考资料:

1. http://downloads.mysql.com/tutorials/cluster/mysql_wp_cluster_quickstart_windows.pdf

2. http://www.cnblogs.com/seesea125/archive/2012/03/28/2421277.html

下面是我的配置文件

config.ini

[ndbd default]

noofreplicas=2

datadir=d:\my_cluster\ndb_data


[ndb_mgmd]

hostname=10.128.50.68

datadir=d:\my_cluster\ndb_data

NodeId=1


[ndbd]

hostname=10.128.50.68

NodeId=3

[ndbd]

hostname=10.128.50.179

NodeId=4

[ndbd]

hostname=10.128.50.68

NodeId=5

[ndbd]

hostname=10.128.50.179

NodeId=6


[mysqld]

hostname=10.128.50.68

NodeId=7

[mysqld]

hostname=10.128.50.179

NodeId=8

[mysqld]


[api]

# do not specify NodeId!

hostname=10.128.50.68

[api]

# do not specify NodeId!

hostname=10.128.50.68

[api]

# do not specify NodeId!

hostname=10.128.50.68

[api]

# do not specify NodeId!

hostname=10.128.50.179

[api]

# do not specify NodeId!

hostname=10.128.50.179

[api]

# do not specify NodeId!

hostname=10.128.50.179


my.cnf

[mysqld]

ndbcluster

default-storage-engine=ndbcluster

character_set_server=utf8

datadir=D:\\my_cluster\\mysqld_data

basedir=D:\\mysqlc

port=5000

ndb-cluster-connection-pool=4

[mysql_cluster]

ndb-connectstring=10.128.50.68


几点说明:

1.主机10.128.50.68上运行了一个管理节点(mgmd),一个MySQL节点(mysqld)和两个数据节点(ndbd

主机10.128.50.179上运行了一个MySQL节点和两个数据节点

2.参数noofreplicas简单来说就是表示备份的数目。详细介绍在这个网址

http://dev.mysql.com/doc/refman/5.5/en/mysql-cluster-nodes-groups.html。里面介绍了nodenode groupreplicaspartition这几个概念和他们之间的关系。这些知识对指定一个有效的备份策略很有帮助。如果你不明白,很可能无法实现MySQL官方承诺的no single point of failure

3.[api]这一项表示mysqldndbd之间打开的连接。具有相同hostname[api][mysqld]项组成主机mysqldndbd之间的连接池。详细信息可以参考MySQL官方手册MySQL_Cluster_Performance_WP.pdf中Connection pools小节

4.[api]节点的nodeid不能指定。这个MySQL Cluster启动后会自动为其分配nodeid[api]项最好写在指定nodeid的项后面。否则,可能会遇到我这样的错误。

我原来把四个[api]加在nodeid=7的那个[mysqld]后面。然后又指定了这四个[api]后面的[mysqld]nodeid=8。结果集群启动时立马报错:nodeid重复

5.my.cnf文件里有两个我自己添加的几个选项。

default-storage-engine=ndbcluster用来指定默认存储引擎。(原来默认的居然是InnoDB,真是坑爹啊。身为一个分布式数据库,情何以堪呐!

character_set_server=utf8用来指定服务器的编码方式。不知道为什么,不改这个,光改数据库的编码方式,插入中文老是出错。原来用在MySQL上的参数default-character-set不管用了。如果加上default-character-set=utf8mysqld启动以后几秒内就会自动关闭。

ndb-cluster-connection-pool=4和上面说的连接池对应。

ndb-connectstring=10.128.50.68声明管理节点




你可能感兴趣的:(mysql,cluster)