gpt4 book ai didi

erlang - 如何将 mnesia 节点添加到现有集群

转载 作者:行者123 更新时间:2023-12-04 07:25:34 24 4
gpt4 key购买 nike

我在节点上安装了 mnesia a .
我已经定义了一个架构和一个表。
现在我不知道如何添加另一个节点 b以便 mnesia 现在可以分布式运行。
分布式我的意思是:

  • 发出 insert来自节点 a 的 mnesia 记录
  • 查询节点b的mnesia时可以获取记录

  • 我尝试过的:
  • 起始节点 a并启动 mnesia
  • create_schemacreate_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()]).=ERROR REPORT==== 3-Jul-2021::13:33:16.147000 === Error in process <0.138.0> on node 'a@DESKTOP-GOMS8S8' with exit value:{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}]}]}

    ** exception exit: function_clausein function gen_server:do_abcast/3called as gen_server:do_abcast([['b@DESKTOP-GOMS8S8']],mnesia_controller,{'$gen_cast',{merging_schema,'a@DESKTOP-GOMS8S8'}})
    in call from mnesia_controller:connect_nodes2/3 (mnesia_controller.erl, line 486)



  • 我只希望我对给定节点的 mnesia 执行的任何操作都反射(reflect)在其他节点上

    最佳答案

    nodes()已经返回一个列表,因此不需要将返回值包装在一个列表中。尝试这个:

    mnesia:change_config(extra_db_nodes,nodes()).

    关于erlang - 如何将 mnesia 节点添加到现有集群,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68235466/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com