无法在Windows中创建Cookie文件RabbitMQ

时间:2013-08-28 18:46:03

标签: erlang rabbitmq

我正在尝试运行以下命令

rabbitmq-plugins.bat enable rabbitmq_management  

它给我一个错误无法创建cookie文件h:/。

我正在使用Windows 7,Erlang版本R16B01和RabbitMQ-Server版本3.1.5

我正在使用我的工作PC,我们的公司政策将HOMEDRIVE设置为h:和HOMEPATH为/ 我不认为他们会让我改变这一点。

我可以在C:\ Windows下看到.erlang.cookie文件。

有人可以让我知道解决方法吗?

提前致谢!

5 个答案:

答案 0 :(得分:22)

有同样的H:问题。在执行cli之前,将主驱动器设置为dos shell中的某个目录。

set HOMEDRIVE=C:/conf/rabbitmq :: Or your favorite dir 
rabbitmq-plugins.bat enable rabbitmq_management

使用C盘中的文件夹。 rabbitmq系统会在那里写cookie文件。

答案 1 :(得分:3)

在您的PC中找到“.erlang.cookie”的位置并运行命令:

set HOMEDRIVE=[location of ".erlang.cookie"]
rabbitmq-plugins.bat enable rabbitmq_management

答案 2 :(得分:1)

我按照以下步骤解决了这个问题:

  1. 打开文件:“Program Files/RabbitMQ Server/rabbitmq_server-/sbin/rabbitmq-env”

  2. 在文件末尾,追加一行:

    REM Environment cleanup
    set BOOT_MODULE=
    set CONFIG_FILE=
    set FEATURE_FLAGS_FILE=
    set ENABLED_PLUGINS_FILE=
    set LOG_BASE=
    set MNESIA_BASE=
    set PLUGINS_DIR=
    set SCRIPT_DIR=
    set SCRIPT_NAME=
    set TDP0=
    set HOMEDRIVE=C: <<< the new path of the .erlang.cookie
    
    
  3. 打开 RabbitMQ 控制台

  4. 写:

    4.1. rabbitmq-service stop
    4.2. rabbitmq-service remove
    4.3. rabbitmq-service install
    4.4. rabbitmq-service start

答案 3 :(得分:0)

在某些情况下,您的HOMEDRIVE和HOMEPATH被组策略(活动目录用户)覆盖,然后每次您要启动RabbitMQ服务时都需要设置HOMEDRIVE变量。在这种情况下,您可以做的是:

  1. rabbitmq-service-删除服务
  2. 编辑 rabbitmq-service.bat 文件:

    "!ERLANG_HOME!\bin\erl.exe" ^
        -pa "!RABBITMQ_EBIN_ROOT!" ^
        -boot !CLEAN_BOOT_FILE! ^
        -noinput -hidden ^
        -s rabbit_prelaunch ^
        -setcookie "C:\Users\userName\" ^ <<< this is a place of your cookie
        !RABBITMQ_NAME_TYPE! rabbitmqprelaunch!RANDOM!!TIME:~9!@localhost ^
        -conf_advanced "!RABBITMQ_ADVANCED_CONFIG_FILE!" ^
        ..."
    
  3. 保存脚本
  4. set HOMEDRIVE=C:\Users\userName在安装服务之前更改Homedrive
  5. rabbitmq-service install重新安装服务

现在,每次重新启动服务时,服务会自动启动,并且所有路径都可以!

答案 4 :(得分:0)

虽然这看起来似乎很明显,但是您确实需要以“以管理员身份”运行cmd-在纠正此问题之前,我遇到了以上错误。 :-)