我正在从一个erlang VM将数据写入Mnesia,现在我在同一台计算机上启动了另一个erlang VM,第二个VM可以读取第一个VM写入mnesia的数据。
答案 0 :(得分:1)
要共享Mnesia表,节点必须是同一distributed Erlang system的一部分。
模式定义哪些节点包含数据库,请参见。 http://erlang.org/doc/apps/mnesia/Mnesia_chap3.html#define-a-schema
此处描述了Mnesia数据库复制:http://erlang.org/doc/apps/mnesia/Mnesia_chap5.html#distribution-and-fault-tolerance。
您可以使用mnesia:set_master_nodes()定义在哪里找到表。
答案 1 :(得分:1)
当然可以,以下是一些基本方法:
iex --name nodeA@127.0.0.1
和iex --name nodeB@127.0.0.1
Node.connect :"nodeB@127.0.0.1"
:mnesia.create_schema [node(), :"nodeB@127.0.0.1"]
:mnesia.start
create_table(Person, [attributes: [:id, :name]])
:mnesia.dirty_write({Person, 1, "John"})
:mnesia.dirty_read({Person, 1})
参考: https://elixirschool.com/en/lessons/specifics/mnesia/# http://erlang.org/doc/apps/mnesia/