Ubuntu 主机名首次更改后rabbitmq服务器无法启动
我正在用django芹菜做我的django项目。上一天我更改了计算机的主机名(我使用的是Ubuntu12.04,编辑文件'/etc/hostname'),下一次重新启动后,django芹菜出现了错误Ubuntu 主机名首次更改后rabbitmq服务器无法启动,ubuntu,rabbitmq,django-celery,Ubuntu,Rabbitmq,Django Celery,我正在用django芹菜做我的django项目。上一天我更改了计算机的主机名(我使用的是Ubuntu12.04,编辑文件'/etc/hostname'),下一次重新启动后,django芹菜出现了错误 Consumer: Connection Error: [Errno 111] Connection refused. Trying again in 4 seconds... 在对这个错误进行一些研究之后,我发现,更改主机名导致了这个错误。我的rabbitmq启动日志显示 文件:/var/log
Consumer: Connection Error: [Errno 111] Connection refused. Trying again in 4 seconds...
在对这个错误进行一些研究之后,我发现,更改主机名导致了这个错误。我的rabbitmq启动日志显示
文件:/var/log/rabbitmq/startup\u log
Activating RabbitMQ plugins ...
********************************************************************************
********************************************************************************
0 plugins activated:
ERROR: epmd error for host "jinesh": nxdomain (non-existing domain)
我的启动错误文件为空
当我跑的时候
root@jinesh:/home/jinesh# rabbitmqctl list_users
Listing users ...
Error: unable to connect to node rabbit@jinesh: nodedown
DIAGNOSTICS
===========
nodes in question: [rabbit@jinesh]
hosts, their running nodes and ports:
- unable to connect to epmd on jinesh: nxdomain
current node details:
- node name: rabbitmqctl4956@jinesh
- home dir: /var/lib/rabbitmq
- cookie hash: RGhmB2JR1LbZ57j7xWWTxg==
我希望更改节点名可以解决这个问题。但是我找不到一个方法来做这件事。有人知道如何解决这个问题吗
更新
更改主机名时,必须同时更改/etc/hostname
和/etc/hosts
文件
我重新安装了rabbitmq并解决了此问题,将回答此问题。您可以通过删除与rabbitmq关联的erlang mnesia数据库或重新安装rabbitmq来解决此问题 我得到了第一个解决方案的提示。Erlang Mnesia数据库是特定于主机的(因为它是一个分布式数据库)。修复问题的最简单方法是清除数据库目录。 第二种方法是最简单的方法(但不推荐)。 卸载
dpkg -P rabbitmq-server
如果您想了解有关安装/删除debian软件包的更多信息,可以参考此信息。删除RabbitMQ的旧安装以修复此问题。以下是重新安装RabbitMQ的步骤。这些命令以root用户身份运行:
rabbitmqctl停止
/etc/hosts
/etc/hostname
dpkg-p RabbitMQ服务器
zypper remove erlang erlang-epmd rabbitmq-server
rm -rf /var/lib/rabbitmq/*
zypper install erlang erlang-epmd rabbitmq-server
systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service
rm-rf/var/lib/RabbitMQ
ps ax | grep rabbit
apt get安装RabbitMQ服务器
zypper remove erlang erlang-epmd rabbitmq-server
rm -rf /var/lib/rabbitmq/*
zypper install erlang erlang-epmd rabbitmq-server
systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service
我在网上写下了这些步骤
修订版
我将我的博客移至一个新网站。在Windows上,我面临的问题是由于McAfee防火墙。确切的错误是: 主机“”的epmd错误:地址(无法连接到主机/端口)
我一禁用防火墙,它就开始工作了我的解决方案是检查并更正
$HOSTNAME
和/etc/HOSTNAME
。结果是我的路由器有点混乱,给了我一个错误的主机名域。重新启动此操作系统后,我调用了export HOSTNAME=the.correct.HOSTNAME
,我的兔子在不重新启动服务器操作系统的情况下运行。感谢Richard H Fung
他的步骤帮助我解决了这个问题。
但我不必重新安装rabbitmq
当我打开我的/etc/hosts
文件时,我发现分配给我主机名的IP
与实际的IP(192.168.1.200[static])
不同
#/etc/hosts
127.0.0.1 localhost
192.168.1.115 HOSTNAME
因此,我刚刚在我的
/etc/hosts
文件中将IP地址更改为192.168.1.200
,它工作正常。删除RabbitMQ数据库:rm-rf/var/lib/RabbitMQ/*
这个动作解决了问题。我相信转储中的某个地方存储了一条记录,其中包含节点、主机名和IP的对应关系。如果某些主机意外更改,这一事实会导致矛盾。检查qpidd守护程序,它可能已经占用rabbitmq所需的端口
sudo netstat -lnp
Richard的回答很好,但您可能会在rabbitmq队列中丢失一些信息。以下是使用新主机名保留以前rabbitmq设置的可能方法 简短的回答: 如果您想保持新主机名的更改,那么可以在
/etc/rabbitmq
中创建一个rabbitmq env.conf
文件,该文件引用旧主机名,并且一切都应该正常。以下是rabbitmq env.conf
文件中应该包含的内容:
NODENAME=rabbit@OLDHOSTNAME
添加配置文件后,重新启动rabbitmq服务器,这样您就可以正常工作了。(例如,服务rabbitmq服务器重启
(可能需要ubuntu的sudo
)
有关更多详细信息,请访问rabbitmq网站:
有关答案的更多详细信息:
我在使用CentOS时遇到了类似的主机名问题。。。根本问题是,当rabbit安装时,它引用安装时的当前主机名。因为这是rabbitmq的事情,所以该解决方案应该适用于其他linux版本。如果您想查看完整答案,可以在以下位置查看:在我的情况下,
/etc/hosts
中没有以下条目:
127.0.0.1 <hostname>
127.0.0.1
其中,
是我的机器的主机名(由主机名
命令给出)。添加该行后,RabbitMQ成功启动。我没有任何RabbitMQ的早期安装。我也有同样的问题,执行Richard H Fung提供的步骤对我没有帮助。我还必须卸载这些包:erlang-erlang-epmd-rabbitmq服务器
zypper remove erlang erlang-epmd rabbitmq-server
rm -rf /var/lib/rabbitmq/*
zypper install erlang erlang-epmd rabbitmq-server
systemctl enable rabbitmq-server.service
systemctl start rabbitmq-server.service
如果您的操作系统不是openSUSE,请使用软件包管理器删除这些软件包(例如,
apt get
)为了解决这个问题,我用新的主机名更改了我的/etc/hostname
文件,然后重新启动了机器。之后,我运行了rm-rf/var/lib/rabbitmq/mnesia/*
然后重新启动服务:sudo服务rabbitmq服务器重新启动
在这一点上,它为我工作。如果仍然不起作用,请通过添加以下信息修改文件/etc/rabbitmq/rabbitmq env.conf
:
NODENAME=rabbit@YOUR_NEW_HOSTNAME
NODE_IP_ADDRESS=127.0.0.1
NODE_PORT=5672
然后重新启动服务:sudo服务rabbitmq服务器重新启动
希望有帮助。唯一适合我的解决方案:安装erlang&rabbitmq
wget https://packages.erlang-solutions.com/erlang-solutions_1.0_all.deb
sudo dpkg -i erlang-solutions_1.0_all.deb
sudo apt-get update
sudo apt-get install erlang
sudo apt-get update
wget https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.7.17/rabbitmq-server_3.7.17-1_all.deb
sudo dpkg -i rabbitmq-server_3.7.17-1_all.deb
rm rabbitmq-server_3.7.17-1_all.deb
rabbitmq-service.bat remove
rabbitmq-service.bat install