【发布时间】:2021-09-15 00:21:24
【问题描述】:
我在节点 a 上安装了 mnesia。
我已经定义了一个模式和一个表。
现在我不知道如何添加另一个节点 b 以便 mnesia 现在可以分布式运行。
我的意思是分布式:
- 从节点
a发出一条记录在mnesia 中的insert - 查询节点
b的mnesia时能够获取记录
我尝试过的:
- 启动节点
a并启动mnesia -
create_schema和create_table在节点a -
dirty_insert在节点a
然后
-
起始节点
b -
将节点
b连接到节点a -
从节点
a发出:mnesia:change_config(extra_db_nodes,[nodes()]).// 不管我是从节点a还是节点b发出这个命令,我都会收到以下错误:(a@DESKTOP-GOMS8S8)7> mnesia:change_config(extra_db_nodes,[nodes()])。 =错误报告==== 2021 年 7 月 3 日::13:33:16.147000 === 节点“a@DESKTOP-GOMS8S8”上的进程 出错,退出值: {function_clause, [{gen_server,do_abcast, [[['b@DESKTOP-GOMS8S8']], mnesia_controller, {'$gen_cast',{merging_schema,'a@DESKTOP-GOMS8S8'}}], [{file,"gen_server.erl"},{line,263}]}, {mnesia_controller,connect_nodes2,3, [{file,"mnesia_controller.erl"},{line,486}]}]}
** 异常退出:function_clause 在函数 gen_server:do_abcast/3 称为 gen_server:do_abcast([['b@DESKTOP-GOMS8S8']], mnesia_controller, {'$gen_cast', {merging_schema,'a@DESKTOP-GOMS8S8'}})
来自 mnesia_controller:connect_nodes2/3 的调用(mnesia_controller.erl,第 486 行)
我只希望我对给定节点的 mnesia 所做的任何操作都反映在其他节点上
【问题讨论】: