Я записываю данные в Mnesia с одной виртуальной машины Erlang, теперь я запустил другую виртуальную машину Erlang на той же машине, может ли вторая виртуальная машина считывать данные, записанные в Mnesia первой виртуальной машиной.
Конечно, вы можете, вот несколько основных способов сделать это:
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/
Для совместного использования таблиц Mnesia узлы должны быть частью одной распределенной системы Эрланга .
Схема определяет, какие узлы содержат базу данных, ср. 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 () , чтобы определить, где найти таблицу.