Я думаю, что, поскольку вы пытаетесь создать таблицу disc_copies, вам нужно указать местоположение каталога mnesia при запуске узла erlang.
erl -mnesia dir db_dir
Редактировать: Хорошо, я создал свойсобственный пример, и у меня есть немного больше информации для вас, и я буду публиковать команды, которые я выполнил
Запустите ваш узел erlang:
erl -sname mnesiatest -mnesia dir db
Запустите mnesia и проверьте информацию
(mnesiatest@host)1> mnesia:start().
ok
(mnesiatest@host)2> mnesia:info().
...
opt_disc. Directory "/home/user/test/db" is NOT used.
use fallback at restart = false
running db nodes = [mnesiatest@host]
stopped db nodes = []
master node tables = []
remote = []
ram_copies = [schema]
disc_copies = []
disc_only_copies = []
[{mnesiatest@host,ram_copies}] = [schema]
Проверьте третью строку, и вы увидите, что "/ home / user / test / db" НЕ используется. "
Решение:
Перед запуском mnesia вы должны создать схему, а не наоборот. Я знаю, что это не кажется логичным, но похоже на первый конфиг и второй старт.
Итак, вы делаете:
(mnesiatest@host)3> mnesia:stop().
...
(mnesiatest@host)4> mnesia:create_schema([node()]).
ok
(mnesiatest@host)5> mnesia:start().
ok
(mnesiatest@host)6> mnesia:info().
...
opt_disc. Directory "/home/user/test/db" is used.
...
Теперь, если вы запустите mnesia: create_table (...), вы должны иметь успех. Опять же, если вы перезапустите узел с тем же каталогом, у вас будет создана таблица с постоянными данными.
Надеюсьэта помощь.