【问题标题】:mongooseim cluster setup eacces error on ubuntu 14.04ubuntu 14.04 上的 mongooseim 集群设置 eacces 错误
【发布时间】:2017-11-24 05:39:11
【问题描述】:

我们正在尝试在同一虚拟网络中的 AWS 上创建两个 mongooseim 实例的主-主集群。 所有必要的端口都在 AWS 安全组中打开。

我怀疑 Ubuntu 14.04 LTS 上的 mongooseim 设置存在问题

在其中一个节点上运行 join_cluster 命令后,我们得到如下错误(参考截图) 错误:{error,{badmatch,{error,eacces}}}

附有详细信息的屏幕截图。 除 vm args 外,服务器配置未更改,如所附屏幕截图所示。

这是您的二进制文件的问题吗?还是其他故障?

【问题讨论】:

  • 这方面有什么进展吗?如果您找到了解决方案,可以分享一下吗?
  • @SashaFonseca 我们最终放弃了 mongooseim 并采用了 ejabberd 的持续版本。

标签: erlang xmpp cluster-computing ejabberd mongoose-im


【解决方案1】:

我自己也遇到了这个问题。 Mongoose 使用 erlangs 内部的mnesia 存储系统来存储包括集群拓扑在内的大量信息。 mnesia 的默认存储路径是/var/lib/mongooseim。当您执行mongooseimctl join_cluster ... 时,它需要擦除它的 mnesia 存储,并且基本上从它加入的集群中提取一个副本。出现问题是因为它还尝试删除 /var/lib/mongooseim 本身,它没有权限这样做,因为正在运行的用户 mongooseim 将没有父目录 /var/lib 的权限。也不应该。

我解决这个问题的方法是创建一个子目录,它可以安全地删除和重新创建,并将其配置为使用它作为 mnesia 目录:

sudo mkdir /var/lib/mongooseim/mnesia
sudo chown mongooseim:mongooseim /var/lib/mongooseim/mnesia

mnesia 目录的配置默认存在于/etc/mongooseim/app.config 中。在我的那里是第三行。原来是这样的:

{mnesia, [{dir, "/var/lib/mongooseim"}]},

我将路径更改为我创建的新目录

{mnesia, [{dir, "/var/lib/mongooseim/mnesia"}]},

之后我停了启动mongoose,成功加入集群

mongooseimctl stop
mongooseimctl start && mongooseimctl started
mongooseimctl join_cluster mongooseim@other.node.name

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-21
    • 2016-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-20
    • 1970-01-01
    相关资源
    最近更新 更多