Windows 8.1为什么RabbitMQ不起作用?

时间:2014-08-27 10:05:59

标签: php erlang rabbitmq

您好我无法运行RabbitMQ服务或经纪人

--old non important removed content--

请帮助我,我该如何解决?我有最新的erlang x64版本

@UPDATE

更改RABBITMQ_BASE之后

我仍然遇到此错误 现在看起来如何:

=CRASH REPORT==== 27-Aug-2014::12:30:52 ===
  crasher:
    initial call: application_master:init/4
    pid: <0.70.0>
    registered_name: []
    exception exit: {bad_return,
                        {{rabbit,start,[normal,[]]},
                         {'EXIT',
                             {badarg,
                                 [{io_lib,format,
                                      ["~-15s: ~s~n",
                                       ["home dir",
                                        [67,58,92,85,115,101,114,115,92,82,97,
                                         102,97,322]]],
                                      [{file,"io_lib.erl"},{line,154}]},
                                  {rabbit_misc,format,2,[]},
                                  {rabbit,'-log_banner/0-lc$^1/1-1-',2,[]},
                                  {rabbit,'-log_banner/0-lc$^1/1-1-',2,[]},
                                  {rabbit,log_banner,0,[]},
                                  {rabbit,start,2,[]},
                                  {application_master,start_it_old,4,
                                      [{file,"application_master.erl"},
                                       {line,272}]}]}}}}
      in function  application_master:init/4 (application_master.erl, line 133)
    ancestors: [<0.69.0>]
    messages: [{'EXIT',<0.71.0>,normal}]
    links: [<0.69.0>,<0.7.0>]
    dictionary: []
    trap_exit: true
    status: running
    heap_size: 1598
    stack_size: 27
    reductions: 222
  neighbours:

并从控制台

              Starting broker...

BOOT FAILED
===========

Error description:
   {could_not_start,rabbit,badarg}

Log files (may contain more information):
   d:/Program Files (x86)/RabbitMQ Server/rabbitmq_server-3.3.5/base/log/rabbit@
VARDIUS.log
   d:/Program Files (x86)/RabbitMQ Server/rabbitmq_server-3.3.5/base/log/rabbit@
VARDIUS-sasl.log

{"init terminating in do_boot",{rabbit,failure_during_boot,{could_not_start,rabb
it,badarg}}}

Crash dump was written to: erl_crash.dump
init terminating in do_boot ()

d:\Program Files (x86)\RabbitMQ Server\rabbitmq_server-3.3.5\sbin>

2 个答案:

答案 0 :(得分:1)

RabbitMQ正在尝试打印出以下消息:

              RabbitMQ 3.3.5. Copyright (C) 2007-2014 GoPivotal, Inc.
  ##  ##      Licensed under the MPL.  See http://www.rabbitmq.com/
  ##  ##
  ##########  Logs: C:/Users/Rafał/AppData/Roaming/RabbitMQ/log/rabbit@VARDIUS.log
  ######  ##        C:/Users/Rafał/AppData/Roaming/RabbitMQ/log/rabbit@VARDIUS-sasl.log
  ##########
              Starting broker...ok

但它没有这样做,因为一方面文件名是作为Unicode“字符串”给出的,即代码点列表(注意中间的322,代表ł),但是另一方面,RabbitMQ尝试将其打印为非Unicode字符串(使用~s指令而不是~ts)。

我建议您将此报告为RabbitMQ开发人员的错误。同时,您可以尝试从路径不包含非ASCII字符的目录中运行它。

答案 1 :(得分:0)

我遇到了完全相同的问题。我的解决方法是在rabbitmq-server.batrabbitmq-service.bat个文件中插入一个额外的批处理行:

SET HOMEPATH=\SOME_PATH_WITHOUT_NON_ASCII_CHARACTERS

%HOMEDRIVE%%HOMEPATH%用作存储.erlang.cookie文件的路径。我也将RABBITMQ_BASE设置为某些非ascii路径,就像你一样。

此解决方案的灵感来自this SO Answer