【问题标题】:Erlang release, set node name for ./bin/XXXXX start -name nonode@nohostErlang 发布,设置节点名称为 ./bin/XXXXX start -name nonode@nohost
【发布时间】:2015-04-15 10:39:31
【问题描述】:

我有一个现有的 mnesia 数据库,现在我开始使用适当的 erlang 版本。我用 relx。

但是,问题是我需要与现有的 mnesia 数据库兼容,并且在创建时,节点名称是 nonode@nohost。我已经看到,对于 mnesia,节点名称不仅仅是目录名称的一部分,即如果不使用备份和恢复以及一些处理,它就无法更改。

我可以使用

运行发布

bin/XXXX 控制台-name nonode@nohost

并找到数据库。但是,我想使用

bin/XXXX start -name nonode@nohost

但随后 -name 将被忽略。当我附加并执行 node() 时,我得到了其他东西。

我也找到了 vm.args 文件并将节点名称更改为 nonode@nohost 那里,但是得到了

{error_logger,{{2015,2,14},{13,25,17}},"无效节点名称:~p~n",['nonode@nohost']}

所以似乎有人真的确定名字不能是 nonode@nohost :-) 我这样做的唯一选择是:How to rename the Node running a mnesia Database

【问题讨论】:

    标签: erlang mnesia relx


    【解决方案1】:

    通常 erlang 命令行参数放在一个名为 vm.args 的文件中。您可以在发布目录中找到它。 该文件的每一行都是 vm 选项,因此在您的情况下,您需要输入:

    -name nonode@nohost

    到这个文件。

    【讨论】:

    • 这行不通,正如原始海报已经解释的那样。它会导致“无效节点名称”错误。
    • 哦,看这个问题的时候没清醒,抱歉。史蒂夫是对的,答案是错误的。
    【解决方案2】:

    好吧,好像没有什么好的解决办法。我将从旧数据库导出并将数据导入使用正确节点名称创建的新数据库。

    【讨论】:

      猜你喜欢
      • 2017-08-11
      • 2013-08-12
      • 2023-03-28
      • 2014-06-15
      • 2016-05-25
      • 1970-01-01
      • 2012-12-14
      • 2020-03-31
      • 1970-01-01
      相关资源
      最近更新 更多