J'utilise Django-céleri pour mon projet Django. Le dernier jour, j'ai changé le nom d'hôte de mon ordinateur (j'utilise Ubuntu 12.04, le fichier modifié '/ etc/hostname') et, après le prochain redémarrage, Django-celery échouait avec une erreur.
Consumer: Connection Error: [Errno 111] Connection refused. Trying again in 4 seconds...
Après quelques recherches sur cette erreur, j’ai trouvé que changer de nom d’hôte était la cause de cette erreur de ici . Mon journal de démarrage rabbitmq montre
fichier:/var/log/rabbitmq/startup_log
Activating RabbitMQ plugins ...
********************************************************************************
********************************************************************************
0 plugins activated:
ERROR: epmd error for Host "jinesh": nxdomain (non-existing domain)
Mon fichier startup_err est vide.
quand je cours
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==
J'espère que le changement du nom de noeud pourra résoudre ce problème. Mais je ne pouvais pas trouver un moyen de faire ça. Quelqu'un a une idée sur la façon de résoudre ce problème?
mettre à jour
lors du changement de nom d'hôte, vous devez changer les fichiers /etc/hostname
et /etc/hosts
.
J'ai réinstallé rabbitmq et résolu ce problème. Je répondrai à cette question.
Supprimez l'ancienne installation de RabbitMQ pour résoudre ce problème. Voici les étapes pour réinstaller RabbitMQ. Ces commandes sont exécutées en tant qu'utilisateur root:
Arrêtez RabbitMQ: rabbitmqctl stop
Changer /etc/hosts
Changer /etc/hostname
Désinstallez old RabbitMQ: dpkg -P rabbitmq-server
Supprimer la base de données RabbitMQ: rm -rf /var/lib/rabbitmq
Trouvez le processus de erlang qui exécute lapin: ps ax | grep rabbit
Tuez le processus indiqué
Réinstallez RabbitMQ: apt-get install rabbitmq-server
J'ai écrit sur ces étapes sur mon blog .
RÉVISION
J'ai déplacé mon blog sur un nouveau site.
Merci à Richard H. Fung.
Ses démarches m'ont aidé à résoudre ce problème.
Mais je n'ai pas eu à réinstaller le rabbitmq .
Lorsque j'ai ouvert mon fichier /etc/hosts
, j'ai trouvé que IP
affecté à mon nom d'hôte était différent du ip(192.168.1.200 [static])
actuel.
#/etc/hosts
127.0.0.1 localhost
192.168.1.115 HOSTNAME
donc je viens de changer adresse IP en 192.168.1.200
dans mon fichier /etc/hosts
et cela a bien fonctionné.
La réponse de Richard est bonne, mais vous risquez de perdre certaines informations dans les files d'attente de rabbitmq. Voici un moyen possible de conserver la configuration précédente de rabbitmq avec le nouveau nom d'hôte.
Une réponse courte:
Si vous souhaitez conserver le changement de nom d'hôte, vous pouvez créer un fichier rabbitmq-env.conf
dans /etc/rabbitmq
qui fait référence à l'ancien nom d'hôte et tout devrait être bon. Voici ce qui devrait être dans le fichier rabbitmq-env.conf
:
NODENAME=rabbit@OLDHOSTNAME
Après avoir ajouté le fichier de configuration, redémarrez le serveur rabbitmq. (par exemple, service rabbitmq-server restart
(peut nécessiter une Sudo
avec ubuntu))
Pour plus de détails, consultez le site Web de rabbitmq: https://www.rabbitmq.com/man/rabbitmq-env.conf.5.man.html
Plus de détails sur la réponse:
J'avais un problème de nom d'hôte similaire avec CentOS ... Le problème fondamental était l'installation de Rabbit, il fait référence au nom d'hôte actuel au moment de l'installation. Comme il s’agit d’un problème récurrent, la solution devrait fonctionner pour d’autres versions de Linux. Si vous voulez voir la réponse complète, vous pouvez la voir à: rabbtimqadmin - Impossible de se connecter: [Errno -2] Nom ou service inconnu
Vous pouvez résoudre ce problème en supprimant la base de données erlang mnesia associée à rabbitmq ou en réinstallant rabbitmq.
J'ai eu un indice pour la première solution de la liste de diffusion rabbitmq . Extrait de la réponse, 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.
La seconde méthode est la plus simple (déconseillée cependant). Pour désinstaller faire
dpkg -P rabbitmq-server
Vous pouvez consulter ce link si vous souhaitez en savoir plus sur l’installation/la suppression de paquets Debian.
Supprimer la base de données RabbitMQ: rm -rf /var/lib/rabbitmq/*
Cette action résout le problème. Je crois que quelque part dans les sauvegardes stocké un enregistrement avec la correspondance des nœuds noms d'hôtes et ips Ce fait provoque une contradiction si certains hôtes ont changé de manière inattendue.
Sous Windows, le problème auquel je faisais face était dû au pare-feu McAfee. L'erreur exacte était erreur epmd pour l'hôte "": adresse (impossible de se connecter à l'hôte/port)
Il a commencé à fonctionner dès que j'ai désactivé le pare-feu
Dans mon cas, je n'ai pas eu l'entrée suivante dans /etc/hosts
:
127.0.0.1 <hostname>
où <hostname>
est le nom d'hôte de ma machine (donné par la commande hostname
). Après avoir ajouté cette ligne, RabbitMQ a démarré avec succès. Je n'avais aucune installation antérieure de RabbitMQ.
Ma solution était de vérifier et de corriger le$HOSTNAME
et /etc/hostname
. Il s'est avéré que mon routeur était un peu confus et m'a donné un mauvais domaine de nom d'hôte. Après avoir redémarré celui-ci, j'ai appelé export HOSTNAME=the.correct.hostname
et mon lapin s'exécute sans redémarrer le système d'exploitation du serveur.
Pour résoudre ce problème, j'ai modifié mon fichier /etc/hostname
avec le nouveau nom d'hôte, puis redémarré la machine. Après cela, j'ai exécuté rm -rf /var/lib/rabbitmq/mnesia/*
Puis redémarré le service: Sudo service rabbitmq-server restart
À ce stade, cela a fonctionné pour moi. Si cela ne fonctionne toujours pas, modifiez le fichier /etc/rabbitmq/rabbitmq-env.conf
en ajoutant ces informations:
NODENAME=rabbit@YOUR_NEW_HOSTNAME
NODE_IP_ADDRESS=127.0.0.1
NODE_PORT=5672
Puis redémarrez le service: Sudo service rabbitmq-server restart
J'espère que ça aide.
J'ai eu le même problème et les étapes fournies par Richard H Fung ne m'ont pas aidé. J'ai aussi dû désinstaller ces paquets: erlang erlang-epmd rabbitmq-server
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
Si vous avez un autre système d'exploitation que openSUSE, utilisez simplement votre gestionnaire de paquets pour supprimer ces paquets (par exemple apt-get
).