RabbitMQ重启后数据和用户丢失

彩虹网

RabbitMQ重启后数据和用户丢失

问题描述:在重启RabbitMQ服务后,数据丢失,用户丢失。

问题原因:在RabbitMQ服务启动后,对主机名进行过修改,而修改主机名会导致数据存储路径发生变化,如果不重启RabbitMQ不会有事,如重启则会数据和用户全部丢失

问题细节:(1)在Linux中,RabbitMQ运行中的数据保存在/var/lib/rabbitmq/mnesia/中,数据目录通过主机名自动生成。(2)在修改主机名并重启服务后,RabbitMQ会重新加载数据存储目录(自动寻找以当前主机名命名的目录,如没有则自动创建),而不会再读取以原主机名命名的目录。(3)而在新目录中不存在数据,导致“数据和用户丢失”现象。

解决办法一:将主机名还原,改回去(如果主机名中有使用大写字母,可以使用hostnamectl set-hostname --static

主机名

,确保大写字母不自动被转换为小写字母)

解决办法二:不把主机名改回去,将RabbitMQ的节点名字固定,设置了节点名后,优先读取节点名(可以设置为原主机名,这样读取的数据存储目录还是不变):echo 'NODENAME=rabbit@info' | sudo tee -a /etc/rabbitmq/rabbitmq-env.confecho '127.0.0.1 info' | sudo tee -a /etc/hosts

重要说明:如你的RabbitMQ在修改主机名后,没有重启过,则使用上面的解决办法之一后,无需重启服务(提前预防问题);如你的RabbitMQ在修改主机名后,已经重启过,故障已经发生,则使用上面的解决办法之一处理后,必须重启RabbitMQ服务,数据才可恢复。

免责声明:由于无法甄别是否为投稿用户创作以及文章的准确性,本站尊重并保护知识产权,根据《信息网络传播权保护条例》,如我们转载的作品侵犯了您的权利,请您通知我们,请将本侵权页面网址发送邮件到qingge@88.com,深感抱歉,我们会做删除处理。