[转帖]rabbitmq 启动问题整理

rabbitmq,启动,问题,整理 · 浏览次数 : 0

小编点评

**错误原因:** * 权限问题,由于 `erlang.cookie` 文件的默认所属用户为 `root`,普通用户无法访问并读取该文件。 **解决方案:** 1. **更改 `erlang.cookie` 文件的所属用户:** ```bash chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/mnesia/rabbit@Celery/ ``` 2. **重新启动 RabbitMQ 服务:** ```bash sudo systemctl restart rabbitmq-server.service ``` **其他提示:** * 检查 `/var/log/rabbitmq` 文件中是否有其他错误信息。 * 使用 `rabbitmqctl stop` 命令停止 RabbitMQ 服务,以便您可以手动修改 `erlang.cookie` 文件的权限。 * 将 `RABBITMQ_NODE_PORT` 和 `RABBITMQ_NODENAME` 设置为正确的端口和名称。

正文

https://www.jianshu.com/p/00099f5a8491

 

mac 下利用brew 安装rabbitmq ,使用brew services start rabbitmq 启动出现 .erlang.cookie 权限问题

在用户目录下使用ls -al ,找到隐藏文件.erlang.cookie,由于默认文件所属用户为root,当以普通用户身份启动则存在权限问题,通过chown 命令修改文件的所属用户(chown xiaolin.zhang .erlang.cookie ),再次重新启动,正常;

搭建集群时以不同的port ,nodeName 启动(执行 RABBITMQ_NODE_PORT=5672 RABBITMQ_NODENAME=rabbit1 rabbitmq-server )时出现epmd error for host 192: address (cannot connect to host/port)问题

192 为一个错误的host,使用了本地ip 的前缀,dns 解析会存在问题
查看本机的hostName
hostname 结果(192.168.0.XX)
修改hostName
sudo scutil --set LocalHostName localhost
再次查看hostName
scutil --get LocalHostName
在/etc/hosts 下配置 127.0.0.1 hostName 映射
退出当前termainal,重新打开一个,再次启动,正常;

linux rabbitmq 启动失败

启动rabbitmq : systemctl restart rabbitmq-server.service
提示: Job for rabbitmq-server.service failed because the control process exited with error code. See "systemctl status rabbitmq-server.service" and "journalctl -xe" for details.
根据提示查看rabbitmq 状态
[root@Celery sbin]# systemctl status rabbitmq-server.service
● rabbitmq-server.service - RabbitMQ broker
Loaded: loaded (/usr/lib/systemd/system/rabbitmq-server.service; enabled; vendor preset: disabled)
Active: activating (auto-restart) (Result: exit-code) since Fri 2022-10-21 10:40:34 CST; 2s ago
Process: 7776 ExecStop=/usr/sbin/rabbitmqctl shutdown (code=exited, status=69)
Process: 7499 ExecStart=/usr/sbin/rabbitmq-server (code=exited, status=1/FAILURE)
Main PID: 7499 (code=exited, status=1/FAILURE)
Oct 21 10:40:34 Celery systemd[1]: Failed to start RabbitMQ broker.
Oct 21 10:40:34 Celery systemd[1]: Unit rabbitmq-server.service entered failed state.
Oct 21 10:40:34 Celery systemd[1]: rabbitmq-server.service failed.
在/var/log/rabbitmq 查看启动过程日志:
...
2022-10-22 15:24:32.680781+08:00 [noti] <0.44.0> Application rabbit exited with reason: {{cannot_read_file,"/var/lib/rabbitmq/mnesia/rabbit@Celery/nodes_running_at_shutdown",eacces},{rabbit,start,[normal,[]]}}
这个错误指出了失败原因,不能读取 /var/lib/rabbitmq/mnesia/rabbit@Celery/nodes_running_at_shutdown, 先查看了下文件是存在的,推测可能是由于权限问题引起,于是查看了下写入日志的用户组和用户,使用rabbitmq 用户组和用户:


 
截屏2022-10-22 下午3.50.13.png

查看/var/lib/rabbitmq/mnesia/rabbit@Celery/ 文件权限,nodes_running_at_shutdown 文件 为root 用户组和用户读写的,


 
截屏2022-10-22 下午3.52.21.png

于是修改了/var/lib/rabbitmq/mnesia/rabbit@Celery/ 这个目录下文件用户组和用户为rabbitmq ,chown -R rabbitmq:rabbitmq /var/lib/rabbitmq/mnesia/rabbit@Celery/ ,再次启动,启动成功;
查看rabbitmq 状态
 
截屏2022-10-22 下午4.04.45.png

与[转帖]rabbitmq 启动问题整理相似的内容:

[转帖]rabbitmq 启动问题整理

https://www.jianshu.com/p/00099f5a8491 mac 下利用brew 安装rabbitmq ,使用brew services start rabbitmq 启动出现 .erlang.cookie 权限问题 在用户目录下使用ls -al ,找到隐藏文件.erlang.c

[转帖]Ubuntu16.04下,erlang安装和rabbitmq安装步骤

原文链接:https://www.cnblogs.com/shanfeng1000/p/11951703.html 准备工作,先下载erlang和rabbitmq的安装包,注意他们的版本,版本不对可能会导致rabbitmq无法启动,这里我使用的是最新的erlang(22.1)和rabbitmq(3.

[转帖]编译安装Erlang+RabbitMQ

https://www.cnblogs.com/hellxz/ 楔子 由于国内信创越来越火,客户现场也开始使用国产操作系统替换CentOS之类的开源操作系统,最近做实施的同事找到我,说现场是ARM架构的操作系统编译安装RabbitMQ一直提示无法启动也没有日志文件生成,找过了好几个同事都没解决这才找

[转帖]RabbitMQ服务优化,修改最大连接数

https://www.cnblogs.com/hoyeong/p/16242202.html RabbitMQ的优化RabbitMQ的连接数是压垮消息队列的一个重要的指标。所以在平时使用OpenStack平台的过程中,如果大量的用户同时创建虚拟机,会导致云平台创建报错,其实就是消息队列服务的崩溃。

[转帖]RabbitMQ性能优化

https://www.cnblogs.com/zhengchunyuan/p/9253728.html 修改rabbitmq.config文件 rabbitmq.config文件时rabbitmq的配置文件,他遵守Erlang配置文件定义。 rabbitmq.config文件位置: Unix $R

[转帖]RabbitMQ的Vhost,Exchange,Queue原理分析

RabbitMQ的Vhost,Exchange,Queue原理分析https://www.cnblogs.com/zhengchunyuan/p/9253725.html Vhost分析 RabbitMQ的Vhost主要是用来划分不同业务模块。不同业务模块之间没有信息交互。 Vhost之间相互完全隔

[转帖]RabbitMQ 的重要概念(术语)

Message 消息指的是 RabbitMQ 的队列中保存的数据。 Producer 消息的生产者,即 message publisher(sender),是指负责创建和发送消息的程序。 Vhost RabbitMQ 的虚拟主机,一个 broker 里可以开设多个 vhost,用作不同用户的权限分离

[转帖]RabbitMQ基础概念详细介绍

https://www.jianshu.com/p/e55e971aebd8 AMQP简介 AMQP,即 Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦和通讯。 AMQP的主要

[转帖]RabbitMQ 死信队列

https://blog.csdn.net/lamp_yang_3533/article/details/111463928 死信交换机 DLX(Dead-Letter-Exchange)可以称之为死信交换机,也称之为死信邮箱。 当消息在一个正常的业务队列中变成死信(dead message)之后,

[转帖]RabbitMQ 如何保证交换机中的消息不丢失

我们知道,生产者会先将消息发送给交换机,但是如果交换机此时没有匹配到相关的队列时,交换机中的消息就会出现丢失的问题。 那么,如何保证交换机中的消息不丢失呢? mandatory 参数 当 basicPublish 方法的 mandatory 参数设为 true 时,如果交换器无法匹配到绑定的队列,那