MySQL集群数据节点不同步

时间:2012-09-23 13:17:58

标签: mysql

我在Window 7上运行了2台计算机,我想尝试MySQL数据库复制。 配置如下。 2毫克节点 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

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

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

1 个答案:

答案 0 :(得分:1)

布赖恩,

首先,只是为了检查术语 - 看起来你正试图使用​​“MySQL Cluster”(数据被保存 - 并在数据节点而不是在mysqlds中同步复制)而不是“MySQL Replication” “(在mysqlds之间异步复制数据)。

我假设mysqlds是随MySQL Cluster包一起提供的('常规'mysqlds无法正常工作)。

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

请注意,如果您希望MySQL Cluster完全容错,那么您应该将ndb_mgmds移动到它们自己的主机,而不是将它们与数据节点共同定位; MySQL Cluster fault tolerance – impact of deployment decisions中解释了这个原因。

安德鲁。