【问题标题】:Erlang version 18.0 and ejabberd nodename conflictErlang 18.0 版本和 ejabberd 节点名冲突
【发布时间】:2016-04-12 00:59:43
【问题描述】:

我想从https://github.com/processone/ejabberd 安装最新的 ejabberd。为此,需要 Erlang/OTP 18。我也是从https://github.com/erlang/otp 手动安装的。然后,我需要使用命令ejabberdctl start 启动 ejabberd 服务器。但其中有一些错误。 我的 mnesia 节点名称是 akash@akash-Latitude-3450,而 ejabberd 节点名称是 akash@localhost。因此,服务器没有启动。如何解决这个冲突?

日志->

2016-01-07 18:38:20.410 [严重] @ejabberd_app:db_init:125 节点名称不匹配:我是 [ejabberd@localhost],数据库归 ['ejabberd@akash -Latitude-3450']

2016-01-07 18:38:20.410 [关键] @ejabberd_app:db_init:127 在 ejabberdctl.cfg 中设置 ERLANG_NODE 或在 Mnesia 中更改节点名称

2016-01-07 18:38:20.410 [错误] 崩溃报告进程 有 0 个邻居退出,原因是:ejabberd_app:db_init/0 中的 node_name_mismatch 在 application_master:init/ 中的第 129 行4 线 134

【问题讨论】:

    标签: erlang ejabberd mnesia


    【解决方案1】:

    你有两个选择:

    1. 启动 ejabberd 时,使用与 Mnesia 数据库匹配的名称命名 Erlang 节点。根据错误消息的建议,可以在 var ERLANG_NODE in ejabberdctl.cfg 中更改它。
    2. 通过以旧名称启动节点来备份 Mnesia 数据库,执行全新安装并使用以新名称启动的节点恢复数据。

    【讨论】:

    • 谢谢。但是如何配置 mnesia 呢?
    • @Akash @Akash another stack overflow question 专门详细说明了如何备份 Mnesia 并使用不同的节点名称恢复它,如果您遵循 Mickaël Rémond 回答的选项 2。
    • Mnesia 正在使用 Erlang VM 的节点名称。如果您使用 ejabberdctl 启动 ejabberd,您可以在 ejabberdctl.cfg 中对其进行调整,如前所述。
    猜你喜欢
    • 2017-11-09
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-07
    • 2015-08-03
    • 2018-06-22
    • 2021-10-27
    相关资源
    最近更新 更多