RabbitMQ启动出现的问题与解决办法
问题1
使用命令启动
service rabbitmq-server start
报错如下:
Starting rabbitmq-server (via systemctl): 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.
[FAILED]
解决办法:
尝试下面的操作:
禁用 SELinux ,修改 /etc/selinux/config
SELINUX=disabled
修改后重启系统
问题2:
一般使用命令
rabbitmq-server start
可以查看启动相关日志的
BOOT FAILED
===========
Error description:
{could_not_start,rabbit,
{{badmatch,
{error,
{{{badmatch,
{error,
{not_a_dets_file,
"/var/lib/rabbitmq/mnesia/rabbit@n1/recovery.dets"}}},
[{rabbit_recovery_terms,open_table,0,
[{file,"src/rabbit_recovery_terms.erl"},{line,126}]},
{rabbit_recovery_terms,init,1,
[{file,"src/rabbit_recovery_terms.erl"},{line,107}]},
{gen_server,init_it,6,[{file,"gen_server.erl"},{line,328}]},
{proc_lib,init_p_do_apply,3,
[{file,"proc_lib.erl"},{line,247}]}]},
{child,undefined,rabbit_recovery_terms,
{rabbit_recovery_terms,start_link,[]},
transient,30000,worker,
[rabbit_recovery_terms]}}}},
[{rabbit_queue_index,start,1,
[{file,"src/rabbit_queue_index.erl"},{line,491}]},
{rabbit_variable_queue,start,1,
[{file,"src/rabbit_variable_queue.erl"},{line,466}]},
{rabbit_priority_queue,start,1,
[{file,"src/rabbit_priority_queue.erl"},{line,92}]},
{rabbit_amqqueue,recover,0,
[{file,"src/rabbit_amqqueue.erl"},{line,240}]},
{rabbit,recover,0,[{file,"src/rabbit.erl"},{line,800}]},
{rabbit_boot_steps,'-run_step/2-lc$^1/1-1-',1,
[{file,"src/rabbit_boot_steps.erl"},{line,49}]},
{rabbit_boot_steps,run_step,2,
[{file,"src/rabbit_boot_steps.erl"},{line,49}]},
{rabbit_boot_steps,'-run_boot_steps/1-lc$^0/1-0-',1,
[{file,"src/rabbit_boot_steps.erl"},{line,26}]}]}}
Log files (may contain more information):
/var/log/rabbitmq/rabbit@n1.log
/var/log/rabbitmq/rabbit@n1-sasl.log
{"init terminating in do_boot",{could_not_start,rabbit,{{badmatch,{error,{{{badmatch,{error,{not_a_dets_file,"/var/lib/rabbitmq/mnesia/rabbit@n1/recovery.dets"}}},[{rabbit_recovery_terms,open_table,0,[{file,"src/rabbit_recovery_terms.erl"},{line,126}]},{rabbit_recovery_terms,init,1,[{file,"src/rabbit_recovery_terms.erl"},{line,107}]},{gen_server,init_it,6,[{file,"gen_server.erl"},{line,328}]},{proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,247}]}]},{child,undefined,rabbit_recovery_terms,{rabbit_recovery_terms,start_link,[]},transient,30000,worker,[rabbit_recovery_terms]}}}},[{rabbit_queue_index,start,1,[{file,"src/rabbit_queue_index.erl"},{line,491}]},{rabbit_variable_queue,start,1,[{file,"src/rabbit_variable_queue.erl"},{line,466}]},{rabbit_priority_queue,start,1,[{file,"src/rabbit_priority_queue.erl"},{line,92}]},{rabbit_amqqueue,recover,0,[{file,"src/rabbit_amqqueue.erl"},{line,240}]},{rabbit,recover,0,[{file,"src/rabbit.erl"},{line,800}]},{rabbit_boot_steps,'-run_step/2-lc$^1/1-1-',1,[{file,"src/rabbit_boot_steps.erl"},{line,49}]},{rabbit_boot_steps,run_step,2,[{file,"src/rabbit_boot_steps.erl"},{line,49}]},{rabbit_boot_steps,'-run_boot_steps/1-lc$^0/1-0-',1,[{file,"src/rabbit_boot_steps.erl"},{line,26}]}]}}}
init terminating in do_boot ()
Crash dump is being written to: erl_crash.dump...done
解决办法:
find / -name recovery.dets
然后使用 rm 命令删除掉 recoer.dets 文件
问题4 :
使用命令
rabbitmq-server start
报错如下: 提示 no space left on device
/usr/lib/rabbitmq/bin/rabbitmq-server: line 51: echo: write error: No space left on device
Failed to write pid file: /var/lib/rabbitmq/mnesia/rabbit@n3.pid
解决办法:
查看磁盘占用情况
df -h
然后使用
cd / #回到根目录
du -sh * # 查看各个文件夹占用磁盘情况
然后看哪个盘数据多, 就cd 进入哪个盘,然后进行最终找到数据量大的文件。一般是日志文件的话,删除即可。
启动异常
rabbitmq-server start
报错如下:
BOOT FAILED
===========
Error description:
{error,{inconsistent_cluster,"Node rabbit@node1 thinks it's clustered with node rabbit@node2, but rabbit@node2 disagrees"}}
Log files (may contain more information):
/usr/local/rabbitmq_server-3.6.2/var/log/rabbitmq/rabbit@node1.log
/usr/local/rabbitmq_server-3.6.2/var/log/rabbitmq/rabbit@node1-sasl.log
Stack trace:
[{rabbit_mnesia,check_cluster_consistency,0,
[{file,"src/rabbit_mnesia.erl"},{line,593}]},
{rabbit,'-boot/0-fun-0-',0,[{file,"src/rabbit.erl"},{line,279}]},
{rabbit,start_it,1,[{file,"src/rabbit.erl"},{line,407}]},
{init,start_it,1,[]},
{init,start_em,1,[]}]
{"init terminating in do_boot",{error,{inconsistent_cluster,"Node rabbit@node1 thinks it's clustered with node rabbit@node2, but rabbit@node2 disagrees"}}}
Crash dump was written to: erl_crash.dump
init terminating in do_boot ()
如何解决无锡人流医院哪家好 http://www.ytsg029.com/
问题分析,从node1的启动报错来看,像是集群信息残留。在node2上操作将node1移除集群,node1的rabbitmq服务已经down掉了,所以数据库无法同步更新,记载的仍是旧的集群信息(数据库记录里自身节点仍属于集群),而node2和node3的数据库记录已经更新(数据库信息里面集群不包含node1节点了)。
那么就得将这个节点mnesia 数据删掉
找到mnseia 目录
mv mnesia/ /tmp/
如果删了,发现 启动还是报错,很有可能你 删错了 mnesia
find / -name mnesia
查找下,然后再次删除,然后重启
问题,节点加入集群后出现黄框
解决办法:
rabbitmq-plugins enable rabbitmq_management
增加用户 并且赋予角色
rabbitmqctl add_user root root
rabbitmqctl set_user_tags root administrator
问题:
如果节点启动
rabbitmq-server start
报错如下:
BOOT FAILED
===========
Timeout contacting cluster nodes: [rabbit@node2].
BACKGROUND
==========
This cluster node was shut down while other nodes were still running.
To avoid losing data, you should start the other nodes first, then
start this one. To force this node to start, first invoke
"rabbitmqctl force_boot". If you do so, any changes made on other
cluster nodes after this one was shut down may be lost.
DIAGNOSTICS
===========
attempted to contact: [rabbit@node2]
rabbit@node2:
* connected to epmd (port 4369) on node2
* node rabbit@node2 up, 'rabbit' application running
current node details:
- node name: rabbit@node1
- home dir: /root
- cookie hash: jIUJ2lMKMbDhJLdCJgFDAA==
{"init terminating in do_boot",timeout_waiting_for_tables}
解决办法:
rabbitmqctl force_boot
问题:
rabbitmq-server: unrecognized service
解决办法
hostname
查看hostname是否正确
如果使用
vi /etc/hosts
修改了host但是不生效, 那么查看
/etc/sysconfig/network
这个目录下的hostname 是否写死了, 把它修改了,然后重启 reboot
https://img-blog.csdn.net/20180322135423539
nohup启动
nohup ./rabbitmq-server start &
RabbitMQ启动出现的问题与解决办法的更多相关文章
- VS2013无法启动IIS Express Web的解决办法
关于 ASP.NET Web 开发服务器.本地 IIS和 IIS Express 的区别,请参见<VS2013无法启动IIS Express Web的解决办法>, 此文章最后提到的部分,即 ...
- tomcat启动失败问题排除及解决办法 Server Tomcat v7.0 Server at localhost failed to start.
tomcat启动失败问题排除及解决办法 Server Tomcat v7.0 Server at localhost failed to start. 导致上面问题的原因可能有很多种,每种的解决办法都 ...
- Redis 3.0版本启动时出现警告的解决办法
原文:http://m.blog.csdn.net/article/details?id=50864933 Redis 3.0.7版本启动时出现警告的解决办法 发表于2016/3/12 12:52:4 ...
- win10应用程序添加到开机启动项的两种解决办法
原文 win10应用程序添加到开机启动项的两种解决办法 在windows10系统中,如果想让应用程序在开机之后自动运行起来,可以怎么做呢? 方法一: 1.首先创建应用程序的快捷方式 找到自己想加入开机 ...
- VM虚拟机启动夜神模拟器卡99%解决办法
VM虚拟机启动夜神模拟器卡99%解决办法 本人出现的情况: 物理机装的是win7系统,安装了vmware14(安装过程未出现报错),在vmware14 上 win10系统(安装过程未出现报错),安装夜 ...
- WinCE启动失败的原因与解决办法分析
本文通过一个真实的嵌入式项目进行说明.文中的嵌入式系统用的是ARM处理器+WinCE平台,项目的目的是要把WinCE平台从旧版本移植到WinCE6.0平台上.但结果是这个WinCE系统在启动的时候经常 ...
- selenium webdriver启动IE浏览器失败的解决办法
通过selenium webdriver启动IE浏览器失败,报错:selenium.common.exceptions.WebDriverException: Message: Unexpected ...
- Android 避免APP启动闪黑屏的解决办法(Theme和Style)
前几天Boss就反应说,机器每次启动程序都会闪一下黑屏,这个客户不接受.没办法,只能想想怎么解决,最后找到了下面的方法.闪黑屏的原因主要是我们启动Activity的时候,需要跑完onCreate和on ...
- VMWare 虚拟机启动报“内部错误”的解决办法
情况 启动虚拟机的时候,启动不起来,弹出对话框,内部错误. 原因 Vmware 的 server 服务未开启. 解决办法 将以上服务都启动起来
随机推荐
- 2019 Nowcoder Multi-University Training Contest 4 E Explorer
线段树分治. 把size看成时间,相当于时间 $l$ 加入这条边,时间 $r+1$ 删除这条边. 注意把左右端点的关系. #include <bits/stdc++.h> ; int X[ ...
- 图的遍历 | 1076 bfs
bfs踩了很多坑才写完.注意:出队时不做是否vis判断,但是要加上vis[出队顶点]=1 .入队时进行判断,并且也要 vis[入队顶点]=1 #include <stdio.h> #inc ...
- 洛谷p2827蚯蚓题解
题目 算法标签里的算法什么的都不会啊 什么二叉堆?? qbxt出去学习的时候讲的,一段时间之前做的,现在才写到博客上的 维护3个队列,队列1表示最开始的蚯蚓,队列2表示每一次被切的蚯蚓被分开的较长的那 ...
- 格利文科定理(Glivenko–Cantelli Theorem)
格利文科定理:每次从总体中随机抽取1个样本,这样抽取很多次后,样本的分布会趋近于总体分布.也可以理解为:从总体中抽取容量为n的样本,样本容量n越大,样本的分布越趋近于总体分布. (注:总体数据需要独立 ...
- ssl证书转换cer转pem
.pem证书转.cer证书 openssl x509 -outform der -in demo.pem -out demo.cer .cer证书转.pem证书 openssl x509 -infor ...
- 每日一问:Android 中内存泄漏都有哪些注意点?
内存泄漏对每一位 Android 开发一定是司空见惯,大家或多或少都肯定有些许接触.大家都知道,每一个手机都有一定的承载上限,多处的内存泄漏堆积一定会堆积如山,最终出现内存爆炸 OOM. 而这,也是极 ...
- 将物理机转换成vmware虚机
随着虚拟化的快速发展,公司主要是以公有云+私有云结合的混合云部署,据我不成熟的了解,目前很少有公司会将一台单独的物理机作为服务器,在公司内部大家逐渐接受了私有云的部署方案,这样做不但可以节省硬件资源, ...
- 自定义Yaml解析器替换Properties文件
自定义Yaml解析器替换Properties文件 项目结构 案例代码 配置类SpringConfiguration @Configuration @Import(JdbcCofnig.class) @ ...
- Effective.Java第34-44条(枚举)
34. 使用枚举类型替代整型常量 常量的语义表达不清晰,只能靠前面的名称来区分.枚举具有可读性.更安全.更强大等优势.而且枚举类型对象之间的值比较可以使用==来比较值是否相等的,不是必须使用equa ...
- c++ 内存二进制表示
int a=1 string b="1" 1.其中变量a在内存中的二进制是 0000 0001 2.那么变量b是一个字符串,ascii码是49(字符串1的ascii码是49)通过计 ...