0

我有 2 台计算机在 Window 7 上运行,我想尝试 MySQL 数据库复制。配置如下。2 mgt 节点 2 数据节点 2 mysqlid 节点

我已经配置了文件 config.ini

[ndbd default]
noofreplicas=2

[ndbd]
hostname=192.168.0.1
NodeId=1

[ndbd]
hostname=192.168.0.2
NodeId=2

[ndb_mgmd]
hostname=192.168.0.1
NodeId=101

[ndb_mgmd]
hostname=192.168.0.2
NodeId=102

[mysqld]
NodeId=51
hostname=192.168.0.1

[mysqld]
NodeId=52
hostname=192.168.0.2

和 my.cnf(.1)

[mysqld]
ndb-nodeid=51
ndbcluster
datadir=c:\\Users\\Brian\\my_cluster\\mysqld_data
basedir=c:\\Users\\Brian\\mysqlc
port=5000
server-id=51
log-bin

和 my.cnf(.2)

[mysqld]
ndb-nodeid=52
ndbcluster
datadir=c:\\Users\\Brian\\my_cluster\\mysqld_data
basedir=c:\\Users\\Brian\\mysqlc
port=5000
server-id=52
log-bin

但是,当我登录到节点(主)的数据库并创建一个新数据库并插入一个新表时,我意识到另一个节点无法同步它。

有人可以帮我解决这个问题吗?

4

1 回答 1

3

布莱恩,

首先,只是为了检查术语-您似乎正在尝试使用“MySQL Cluster”(数据在数据节点中而不是在 mysqlds 中保存并同步复制)而不是“MySQL Replication”(其中在 mysqlds 之间异步复制数据)。

我假设 mysqlds 是 MySQL Cluster 软件包附带的(“常规”mysqlds 将无法正常工作)。

为了将表存储在数据节点中(因此通过所有 mysqld 可见)而不是本地 mysqld,您必须指定 MySQL Cluster 是要使用的存储引擎:“CREATE TABLE mytab (... .) 引擎=NDBCLUSTER;"。如果你不这样做,那么这些表将使用 InnoDB 存储引擎创建,并且对于每个 mysqld 都是本地的。

请注意,如果您希望您的 MySQL 集群完全容错,那么您应该将 ndb_mgmds 移动到它们自己的主机上,而不是将它们与数据节点放在一起;其原因在MySQL 集群容错 – 部署决策的影响中进行了解释。

安德鲁。

于 2012-09-25T08:56:19.627 回答