magento - 启用rabbitmq-management后无法启动rabbitmq-server
问题描述
我已经安装了 Erlang 和 rabbitmq。之后启动服务
$ sudo systemctl start rabbitmq-server
$ systemctl status rabbitmq-server
● rabbitmq-server.service - RabbitMQ broker
Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; disabled; vendor preset: disabled)
Active: active (running) since Fri 2018-10-19 10:50:10 CEST; 13s ago
Main PID: 46976 (beam.smp)
CGroup: /system.slice/rabbitmq-server.service
├─46976 /usr/lib64/erlang/erts-5.10.4/bin/beam.smp -W w -K true -A30 -P 1048576 -- -root /usr/li...
├─47073 inet_gethost 4
└─47075 inet_gethost 4
然后我启用了rabbitmq-management,并更改了所有权
$ sudo rabbitmq-plugins enable rabbitmq_management
The following plugins have been enabled:
mochiweb
webmachine
rabbitmq_web_dispatch
amqp_client
rabbitmq_management_agent
rabbitmq_management
Plugin configuration has changed. Restart RabbitMQ for changes to take effect.
$ sudo chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/
比创建用户,标记他并设置权限
$ sudo rabbitmqctl add_user admin password!
Creating user "admin" ...
...done.
$ sudo rabbitmqctl set_user_tags admin administrator
Setting tags for user "admin" to [administrator] ...
...done.
$ sudo rabbitmqctl set_permissions -p / admin ".*" ".*" ".*"
Setting permissions for user "admin" in vhost "/" ...
...done.
那里发生了不好的事情,无论如何我都无法重新启动rabbitmq
$ sudo systemctl status rabbitmq-server.service
● rabbitmq-server.service - RabbitMQ broker
Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; disabled; vendor preset: disabled)
Active: failed (Result: exit-code) since Fri 2018-10-19 10:55:23 CEST; 17s ago
Process: 59210 ExecStop=/usr/lib/rabbitmq/bin/rabbitmqctl stop (code=exited, status=2)
Process: 59024 ExecStart=/usr/lib/rabbitmq/bin/rabbitmq-server (code=exited, status=1/FAILURE)
Main PID: 59024 (code=exited, status=1/FAILURE)
Oct 19 10:55:23 XEMDUB07APXD080 systemd[1]: rabbitmq-server.service: main process exited, code=exited, ...LURE
Oct 19 10:55:23 XEMDUB07APXD080 rabbitmqctl[59210]: Stopping and halting node rabbit@XEMDUB07APXD080 ...
Oct 19 10:55:23 XEMDUB07APXD080 rabbitmqctl[59210]: Error: unable to connect to node rabbit@XEMDUB07APXD...own
Oct 19 10:55:23 XEMDUB07APXD080 rabbitmqctl[59210]: DIAGNOSTICS
Oct 19 10:55:23 XEMDUB07APXD080 rabbitmqctl[59210]: ===========
Oct 19 10:55:23 XEMDUB07APXD080 rabbitmqctl[59210]: attempted to contact: [rabbit@XEMDUB07APXD080]
Oct 19 10:55:23 XEMDUB07APXD080 systemd[1]: rabbitmq-server.service: control process exited, code=exite...us=2
Oct 19 10:55:23 XEMDUB07APXD080 systemd[1]: Failed to start RabbitMQ broker.
Oct 19 10:55:23 XEMDUB07APXD080 systemd[1]: Unit rabbitmq-server.service entered failed state.
Oct 19 10:55:23 XEMDUB07APXD080 systemd[1]: rabbitmq-server.service failed.
Hint: Some lines were ellipsized, use -l to show in full.
lskdlskdlskd
我应该怎么做才能让rabbitmq重新开始?谢谢
解决方案
我在 Windows 上遇到了同样的问题。我没有通过谷歌搜索找到解决方案。{error,{cannot_read_enabled_plugins_file,"C:\RabbitMQ\ENABLE~1",eisdir}} 我已将环境变量中配置的 HOMEDRIVE 和 HOMEPATH 设置为 c: 和 \RabbitMQ。但是 rabbimq 忽略了这些值。
我在 C:\RabbitMQ 文件夹中有一个名为“enabled_plugins”的文件夹。RabbitMQ 期望 %HOMEDRIVE%%HOMEPATH% 文件夹中有一个文件。
解决方案是删除 C:\RabbitMQ 路径下的 enabled_plugins 文件夹,并在 %HOMEDRIVE%%HOMEPATH% 文件夹中创建名为 enabled_plugins 的文件。
涉及的其他步骤:
1)安装二郎。检查环境变量是否指向正确的 erlang 路径在我的情况下 envName:ERLANG_HOME 值:C:\Program Files\erl10.0.1
2) 安装 RabbitMQ windows 安装程序
3) 配置防火墙(如有必要)。从控制面板查看高级防火墙设置(见防火墙设置左侧面板)。
根据以下添加新规则。
规则类型 端口 协议和端口 TCP 指定的本地端口 5672、15672 操作 允许连接 Profile Domain、Private、Public Name RabbitMQ
规则类型 程序 程序路径 %ProgramFiles%\erl7.2.1\bin\erl.exe 操作 允许连接 Profile Domain, Private, Public Name Erlang
规则类型 Program 程序路径 %ProgramFiles%\erl10.0.1\erts-10.0.1\bin\erl.exe 操作 允许连接 Profile Domain, Private, Public Name Erlang RunTime
规则类型 程序 程序路径 %ProgramFiles%\erl10.0.1\erts-10.0.1\bin\epmd.exe 操作 允许连接 Profile Domain, Private, Public Name Erlang Port
4) 将 RabbitMQ 文件夹从 %APPDATA% 复制到 C: 驱动器并从 %APPDATA% 文件夹中删除
(这可以在注销并重新登录后完成)。
5)设置环境变量(系统变量)RABBITMQ_BASE = C:\RabbitMQ and RABBITMQ_MNESIA_BASE= C:\RabbitMQ\db,确保db文件夹存在。
6)运行RabbitMQ命令提示符(以管理员身份运行)(或命令提示符路径C:\Program Files\RabbitMQ Server\rabbitmq_server-3.7.8\sbin)
7) SET HOMEDRIVE=C: SET HOMEPATH=\RabbitMQ 从命令提示符
8) rabbitmq-service.bat 删除
9) rabbitmq-service.bat 安装
10) rabbitmq-service.bat 启动
11) rabbitmq-plugins.bat 启用 rabbitmq_management (如果身份验证不匹配检查 erlang cookie)
12) rabbitmqctl.bat status (检查状态)
13)从 C:\Windows\System32\config\systemprofile.erlang.cookie 文件中删除只读属性。(右键单击属性)
14) 确保 C:\Windows\System32\config\systemprofile 中的 cookie 内容与 %HOMEDRIVE%%HOMEPATH%.erlang.cookie 相同
15) http://localhost:15672/#/,您应该会看到登录屏幕。
16) 使用访客/访客登录并创建虚拟主机并配置您的总线(发送方)。启动指向此虚拟主机的后台服务。
推荐阅读
- python-3.x - 使用reportlab python库以Bangla语言生成PDF损坏的联合字母问题
- python - 如何将用户重定向到容器 webapp 但显示不同的地址
- python - 解析 json 给出 JSONDecodeError: Unterminated string
- python - 如何在 Python 中获取对象的所有和唯一属性?
- c# - C#在后台填充列表
- html - 尝试解析 xhr 响应文本时出错(位置 0 处的 JSON 中的意外标记 <)
- arrays - 将对象转换为数组 mongoDB
- php - 如何通过 post 方法使 PayPalCheckout 返回值?
- java-ee-8 - CustomAuthenticationMechanism 调用 identityStoreHandler.validate 后没有获取 callerGroups
- snowflake-cloud-data-platform - 如何获取具有差异页码的记录