Database 从不同节点访问分布式mnesia数据库

Database 从不同节点访问分布式mnesia数据库,database,erlang,distributed,mnesia,Database,Erlang,Distributed,Mnesia,我有一个包含不同表的mnesia数据库 我希望能够从不同的Linux终端访问这些表 我有一个名为add_record的函数,它接受一些参数,比如name和id。我希望能够在node1上调用add_record,在node2上调用add record,但我希望从不同的位置更新相同的表 我读了一些资料,唯一发现的是我应该使用(node2)。但不知何故,我无法访问表中的数据。我想您可能是指复制的表。假设您在节点:nodea@127.0.0.1使用-setcookie myookie,无论它是否在另一个

我有一个包含不同表的mnesia数据库

我希望能够从不同的Linux终端访问这些表

我有一个名为
add_record
的函数,它接受一些参数,比如
name
id
。我希望能够在
node1
上调用
add_record
,在
node2
上调用
add record
,但我希望从不同的位置更新相同的表


我读了一些资料,唯一发现的是我应该使用(node2)。但不知何故,我无法访问表中的数据。

我想您可能是指复制的
表。假设您在节点:
nodea@127.0.0.1
使用
-setcookie myookie
,无论它是否在另一个节点上复制,如果我想从另一个终端访问记录,那么我也必须在另一个终端中使用erlang,方法是创建一个节点,将该节点与我们的节点通过表连接(您确保它们都有相同的cookie),然后在远程节点上调用一个方法。

假设您想在节点上的模块
mydatabase.erl
中使用方法
add\u record
nodea@127.0.0.1
其中包含mnesia表,我打开linux终端,输入以下内容:

$ erl -name remote@127.0.0.1 -setcookie mycookie Eshell V5.8.4 (abort with ^G) 1> N = 'nodea@127.0.0.1'. 'nodea@127.0.0.1' 2> net_adm:ping(N). pong 3> rpc:call(N,mydatabase,add_record,[RECORD]). {atomic,ok} 4> 它应该显示远程终端中的所有内容。我建议您首先阅读本课程:然后您将能够看到复制的mnesia表是如何管理的。阅读该领域的整个教程

rpc:call('nodea@127.0.0.1',mnesia,info,[]).