一个erlang VM能否读取另一个erlang VM写入mnesia的数据

一个erlang VM能否读取另一个erlang VM写入mnesia的数据,erlang,elixir,mnesia,Erlang,Elixir,Mnesia,我正在从一个erlang VM向Mnesia写入数据,现在我在同一台机器上启动了另一个erlang VM,第二个VM可以读取第一个VM写入Mnesia的数据。要共享Mnesia表,节点必须是同一台机器的一部分 模式定义了包含数据库的节点,cf 此处描述了Mnesia数据库复制: 您可以使用定义在何处查找表。当然可以,下面是一些基本方法: 启动两个节点-iex--namenodeA@127.0.0.1和iex--namenodeB@127.0.0.1 从节点A的终端-node.connect:“n

我正在从一个erlang VM向Mnesia写入数据,现在我在同一台机器上启动了另一个erlang VM,第二个VM可以读取第一个VM写入Mnesia的数据。

要共享Mnesia表,节点必须是同一台机器的一部分

模式定义了包含数据库的节点,cf

此处描述了Mnesia数据库复制:


您可以使用定义在何处查找表。

当然可以,下面是一些基本方法:

  • 启动两个节点-
    iex--namenodeA@127.0.0.1
    iex--namenodeB@127.0.0.1
  • 从节点A的终端-
    node.connect:“nodeB@127.0.0.1“
  • 从节点A的终端-
    :mnesia.create_schema[node(),:“nodeB@127.0.0.1“]
  • 对于节点A和节点B-
    :mnesia.start
  • 从节点A的终端-
    创建_表(Person,[attributes:[:id,:name]])
  • 从节点B的终端-
    :mnesia.dirty_write({Person,1,“John”})
  • 现在,通过执行基本选择-
    :mnesia.dirty\u read({Person,1})
  • 参考资料:

    可能存在的副本