【问题标题】:Rabbit - Error: mnesia_unexpectedly_running兔子 - 错误:mnesia_unexpectedly_running
【发布时间】:2012-12-17 08:55:43
【问题描述】:

我正在尝试使用厨师对兔子进行聚类

这是我的错误。我关闭了第二个节点上的所有兔子。

rabbitmqctl join_cluster --ram rabbit@ip-10-158-xxx-xxx

Error: mnesia_unexpectedly_running

那么..这是什么交易?我从http://agiletesting.blogspot.com/2010/05/rabbitmq-clustering-in-ubuntu.html 尝试了这个,即删除 /var/lib/rabbitmq/mnesia。不去。它不在什么服务器上运行?全部?

谢谢

【问题讨论】:

    标签: rabbitmq chef-infra


    【解决方案1】:

    这意味着您尝试链接的当前节点上的应用正在运行。在将应用加入主节点之前停止当前节点上的应用。

    sudo rabbitmqctl stop_app rabbitmqctl join_cluster --ram rabbit@ip-10-158-xxx-xxx。然后 rabbitmqctl start_app.

    还要确保主节点上的应用正在运行。否则你会得到Error: mnesia_not_running 错误。

    【讨论】:

      【解决方案2】:

      要指出@Itai Ganot 评论中非常重要的部分,但不是立即直观:您需要在除一个以外的所有节点上运行rabbitmqctl stop_app。如果您在所有节点上运行rabbitmqctl stop_app,您将收到不同的消息:Error: mnesia_not_running

      简而言之:

      • Error: mnesia_unexpectedly_running 表示“你需要在这个节点上运行rabbitmqctl stop_app
      • Error: mnesia_not_running 的意思是“你需要在你试图集群的节点上运行 rabbitmqctl start_app

      【讨论】:

        【解决方案3】:

        我在尝试创建由两个 rabbitmq 服务器组成的集群时也收到了同样的错误。

        据我所知,创建集群的实际过程与其他答案中描述的过程略有不同,但最终对我有用:

        在你有两个或更多节点运行rabbitmq-server之后,选择一个服务器,这就是你不接触的那个——我们称之为rabbitmaster,在所有其他节点中,按照以下步骤操作:

        1. Make sure the rabbitmq-server is not running.
        2. # su - rabbitmq
        3. $ rabbitmq-server -detached
        4. $ rabbitmqctl cluster_status
        5. $ rabbitmqctl stop_app
        6. $ rabbitmqctl join_cluster rabbit@rabbitmaster
        7. $ rabbitmqctl start_app
        

        现在您可以运行 rabbitmqctl cluster_status 并查看刚刚配置的节点和 rabbitmq 主节点。

        更多信息可以在RabbitMQ Official site找到。

        【讨论】:

          【解决方案4】:

          确保在发出集群命令之前调用sudo rabbitmqctl stop_app。这似乎是我的问题。

          然后确保您致电sudo rabbitmqctl start_app 重新开始:)

          【讨论】:

          • 值得注意的是,我必须分别执行这两个步骤。使用 sudo rabbitmqctl force_reset 无效。
          【解决方案5】:

          您需要从您尝试连接的节点复制 cookie

          让我们以 2 个节点为例:rabbit@node1 和 rabbit@node2

          1. 转到rabbit@node1 并从猫/var/lib/rabbitmq/.erlang.cookie 复制cookie
          2. 转到 rabbit@node2 删除当前 cookie 并粘贴新的。
          3. 在同一个节点上执行以下命令

            /usr/sbin/rabbitmqctl stop_app
            /usr/sbin/rabbitmqctl reset
            /usr/sbin/rabbitmqctl cluster rabbit@node1
            

          应该可以的。

          记录了相同的过程here

          【讨论】:

          • 对于 Windows(在提升的命令提示符下): 1. rabbitmqctl stop_app 2. rabbitmqctl reset 3. rabbitmqctl start_app
          • 答案中的链接已失效 - “无法访问此站点 | DNS_PROBE_FINISHED_NXDOMAIN”
          【解决方案6】:

          我不喜欢回答我自己的问题,但是聚集 rabbin usig chef 真的很痛苦。通过不将 -N 选项与引导程序一起使用解决了 rabbit 的问题。 Rabbit 不喜欢更改主机名。

          所以..按照兔子网站上的文档进行聚类工作按预期工作。如果您对 chef 使用 -N 选项...将会出现重大问题。

          【讨论】:

          • 或编辑 rabbitmq slaves 的 /etc/hosts 文件,其中包含节点条目,并为所有成员分配弹性 IP。更改主机名或使用 -N 选项在这里并不是真正的问题,您只需要解决它或覆盖说明书默认值。
          猜你喜欢
          • 2015-02-17
          • 1970-01-01
          • 2013-02-24
          • 2012-12-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多