1

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

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

我可以使用

bin/XXXX 控制台-name nonode@nohost

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

bin/XXXX 开始 -name nonode@nohost

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

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

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

所以似乎有人真的确定名字不能是 nonode@nohost :-) 是我这样做的唯一选择:如何重命名运行 mnesia 数据库的节点

4

2 回答 2

0

Usually erlang command line args are placed in a file called vm.args. You can find it in release directory. Each line of this file is vm option, so in your case you need to put:

-name nonode@nohost

to this file.

于 2015-02-16T09:00:24.190 回答
0

好吧,似乎没有好的解决方案。我将从旧数据库导出并将数据导入到使用正确节点名称创建的新数据库中。

于 2015-02-18T08:20:12.043 回答