Jin*_*esh 56 ubuntu rabbitmq django-celery
我正在为我的django项目使用django-celery.最后一天我更改了我的计算机主机名(我正在使用Ubuntu 12.04,编辑文件'/ etc/hostname'),然后在下次重启后django-celery失败并出现错误
Consumer: Connection Error: [Errno 111] Connection refused. Trying again in 4 seconds...
Run Code Online (Sandbox Code Playgroud)
这个错误经过一番研究,我能找到的,改变我的主机名从导致该错误在这里.我的rabbitmq启动日志显示
file:/ var/log/rabbitmq/startup_log
Activating RabbitMQ plugins ...
********************************************************************************
********************************************************************************
0 plugins activated:
ERROR: epmd error for host "jinesh": nxdomain (non-existing domain)
Run Code Online (Sandbox Code Playgroud)
我的startup_err文件为空.
我跑的时候
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==
Run Code Online (Sandbox Code Playgroud)
我希望改变节点可以解决这个问题.但我找不到办法做到这一点.有谁知道如何解决这个问题?
更新
更改主机名时,您必须更改文件/etc/hostname和/etc/hosts文件.
我重新安装了rabbitmq并解决了这个问题,将回答这个问题.
Ric*_*ung 54
删除RabbitMQ的旧安装以解决此问题.以下是重新安装RabbitMQ的步骤.这些命令以root用户身份运行:
停止RabbitMQ: rabbitmqctl stop
更改 /etc/hosts
更改 /etc/hostname
卸载旧的RabbitMQ: dpkg -P rabbitmq-server
删除RabbitMQ的数据库: rm -rf /var/lib/rabbitmq
找到运行兔子的erlang进程: ps ax | grep rabbit
杀死列出的流程
重新安装RabbitMQ: apt-get install rabbitmq-server
我在博客上写了这些步骤.
修订
我将我的博客移到了一个新网站.
Kis*_*war 39
感谢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
Run Code Online (Sandbox Code Playgroud)
所以我只是改变了IP地址到192.168.1.200我的/etc/hosts文件,它工作得很好.
Jam*_*vec 22
理查德的答案很好,但你可能会在rabbitmq队列中丢失一些信息.以下是使用新主机名保留rabbitmq先前设置的可能方法.
简答:
如果要保持新主机名更改,则可以创建引用旧主机名的rabbitmq-env.conf文件,/etc/rabbitmq并且所有文件都应该是好的.以下是rabbitmq-env.conf文件中应包含的内容:
NODENAME=rabbit@OLDHOSTNAME
Run Code Online (Sandbox Code Playgroud)
添加配置文件后,重新启动rabbitmq服务器,那么你应该很好.(例如service rabbitmq-server restart(可能需要sudo使用ubuntu))
有关详细信息,请访问rabbitmq网站:https://www.rabbitmq.com/man/rabbitmq-env.conf.5.man.html
关于答案的更多细节:
我使用CentOS时有类似的主机名问题...根问题是当安装Rabbit时,它在安装时引用了当前的主机名.由于这是一个rabbitmq的东西,该解决方案应该适用于其他Linux风格.如果你想看到完整的答案,你可以在:rabbtimqadmin看到它- 无法连接:[Errno -2]名称或服务未知
您可以通过删除与rabbitmq关联的erlang mnesia数据库或重新安装rabbitmq来解决此问题.
我从rabbitmq邮件列表中得到了第一个解决方案的提示.节选自答案,The Erlang Mnesia database is host specific (because it is a distributed DB). The simplest way to get you fixed is to clear out the database dir.
第二种方法是最简单的方法(尽管不推荐).卸载做
dpkg -P rabbitmq-server
Run Code Online (Sandbox Code Playgroud)
如果您想了解有关安装/删除debian软件包的更多信息,可以参考此链接.
| 归档时间: |
|
| 查看次数: |
64449 次 |
| 最近记录: |