我在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)的数据库并创建一个新数据库并插入一个新表时,我意识到另一个节点无法同步它。
有人可以帮我解决这个问题吗?
答案 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中解释了这个原因。
安德鲁。