57

djangoプロジェクトにdjango-celeryを使用しています。昨日、コンピューターのホスト名を変更し(Ubuntu 12.04を使用し、ファイル'/ etc / hostname'を編集しました)、次の再起動後、django-celeryがエラーで失敗しました

Consumer: Connection Error: [Errno 111] Connection refused. Trying again in 4 seconds...

このエラーについて調査したところ、ホスト名を変更すると、ここからこのエラーが発生することがわかりました。私のrabbitmq起動ログは

ファイル:/ var / log / javbitmq / startup_log

Activating RabbitMQ plugins ...

********************************************************************************
********************************************************************************

0 plugins activated:

ERROR: epmd error for host "jinesh": nxdomain (non-existing domain)

私の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==

ノード名を変更すると、この問題が解決することを願っています。しかし、私はこれを行う方法を見つけることができませんでした。誰かがこの問題をどのように解決するかについて考えていますか?

アップデート

ホスト名を変更するときは、/etc/hostname/etc/hostsファイルの両方を変更する必要があります。

私はrabbitmqを再インストールし、この問題を解決しました。この質問に答えます。

4

13 に答える 13

57

この問題を修正するには、RabbitMQの古いインストールを削除してください。RabbitMQを再インストールする手順は次のとおりです。これらのコマンドは、rootユーザーとして実行されます。

  1. RabbitMQを停止します:rabbitmqctl stop

  2. 変化する/etc/hosts

  3. 変化する/etc/hostname

  4. 古いRabbitMQをアンインストールします。dpkg -P rabbitmq-server

  5. RabbitMQのデータベースを削除します。rm -rf /var/lib/rabbitmq

  6. ウサギを実行しているerlangのプロセスを見つけます:ps ax | grep rabbit

  7. リストされたプロセスを強制終了します

  8. RabbitMQを再インストールします。apt-get install rabbitmq-server

これらの手順については、ブログに書いています。

リビジョン

ブログを新しいウェブサイトに移動しました。

于 2013-06-06T22:06:02.663 に答える
42

RichardHFungに感謝します。

彼のステップは私がこの問題を解決するのを助けました。

しかし、rabbitmqを再インストールする必要はありませんでした

/etc/hostsファイルを開いたときにIP、ホスト名に割り当てられているものが実際のものとは異なることがわかりましたip(192.168.1.200 [static])

#/etc/hosts  
127.0.0.1       localhost  
192.168.1.115   HOSTNAME

そのため、ファイル内のIPアドレスをに変更しただけで、正常に機能しました。192.168.1.200/etc/hosts

于 2014-08-07T07:36:17.350 に答える
25

リチャードの答えは良いですが、rabbitmqキューの情報が失われる可能性があります。以下は、rabbitmqの以前の設定を新しいホスト名で保持するための可能な方法です。

簡単な答え:

新しいホスト名の変更を保持したい場合は、古いホスト名を参照するrabbitmq-env.confファイルを作成できます/etc/rabbitmq。すべて問題ありません。rabbitmq-env.conf以下は、ファイルに含まれるべきものです。

NODENAME=rabbit@OLDHOSTNAME

構成ファイルを追加した後、rabbitmqサーバーを再起動すると、問題がないはずです。(例service rabbitmq-server restart(ubuntuでaが必要な場合がありますsudo))

詳細については、rabbitmqのWebサイトから読むことができます:https ://www.rabbitmq.com/man/rabbitmq-env.conf.5.man.html

回答に関する詳細:

CentOSを使用して同様のホスト名の問題が発生しました...根本的な問題は、rabbitのインストール時に、インストール時の現在のホスト名を参照することでした。これはrabbitmqのものであるため、このソリューションは他のLinuxフレーバーでも機能するはずです。完全な回答を確認したい場合は、次の場所で確認できます。rabbtimqadmin-接続できませんでした:[Errno-2]名前またはサービスが不明です

于 2015-08-13T00:51:19.003 に答える
6

この問題は、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.

2番目の方法が最も簡単な方法です(ただし、お勧めしません)。アンインストールするには

dpkg -P rabbitmq-server

debianパッケージのインストール/削除について詳しく知りたい場合は、このリンクを参照してください。

于 2013-02-02T08:25:07.250 に答える
5

Windowsでは、私が直面していた問題はMcAfeeファイアウォールが原因でした。正確なエラーは次のとおりです。

ホスト"<HOSTNAME>"のepmdエラー:アドレス(ホスト/ポートに接続できません)

ファイアウォールを無効にするとすぐに機能し始めました

于 2014-05-13T01:09:52.300 に答える
4

RabbitMQデータベースを削除します。rm -rf /var/lib/rabbitmq/*

このアクションは問題を解決します。ダンプのどこかに、ノードのホスト名とIPの対応を示すレコードが格納されていると思います。一部のホストが予期せず変更された場合、この事実は矛盾を引き起こします。

于 2015-02-13T11:15:48.700 に答える
3

$HOSTNAME私の解決策は、とをチェックして修正することでした/etc/hostname。私のルーターは少し混乱していて、間違ったホスト名ドメインを与えてくれたことがわかりました。これを再起動した後、私は電話をかけexport HOSTNAME=the.correct.hostname、サーバーOSを再起動せずにウサギを実行しました。

于 2014-05-19T20:46:07.060 に答える
3

私の場合、次のエントリがありませんでした/etc/hosts

127.0.0.1 <hostname>

ここ<hostname>で、は私のマシンのホスト名です(hostnameコマンドで指定)。その行を追加した後、RabbitMQは正常に開始されました。以前にRabbitMQをインストールしたことはありませんでした。

于 2016-01-25T15:31:32.767 に答える
1

この問題を解決するために、/etc/hostnameファイルを新しいホスト名に変更してから、マシンを再起動しました。その後、走りましたrm -rf /var/lib/rabbitmq/mnesia/*

次に、サービスを再起動しました:sudo service rabbitmq-server restart

この時点で、それは私のために働いた。それでも機能しない場合は、/etc/rabbitmq/rabbitmq-env.conf次の情報を追加してファイルを変更します。

NODENAME=rabbit@YOUR_NEW_HOSTNAME
NODE_IP_ADDRESS=127.0.0.1
NODE_PORT=5672

次に、サービスを再起動します。sudo service rabbitmq-server restart

それが役に立てば幸い。

于 2019-01-23T07:04:07.807 に答える
1

Windowsの場合(申し訳ありませんが、トピックはUbuntuに関するものだと理解しています)、RabbitMQサービスを再インストールするだけです。

rabbitmq-service.bat remove
rabbitmq-service.bat install

スクリプトはC:\Program Files\RabbitMQ Server\rabbitmq_server-<version>\sbinフォルダにあります。

または、の値を変更するだけHKEY_LOCAL_MACHINE\SOFTWARE\Ericsson\Erlang\ErlSrv\1.1\RabbitMQ\@SNameで十分な場合があります。

手がかり:https ://github.com/rabbitmq/rabbitmq-server/issues/620

于 2019-09-12T17:42:26.243 に答える
0

私は同じ問題を抱えていて、RichardHFungが提供した手順を実行しても役に立ちませんでした。また、これらのパッケージをアンインストールする必要がありました。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

openSUSE以外のOSを使用している場合は、パッケージマネージャーを使用してこれらのパッケージを削除してください(例apt-get

于 2016-06-17T06:43:14.957 に答える
-1

私のために働く唯一の解決策:debからerlangとrabbitmqをインストールしてください:

最初に削除:

apt-get purge rabbitmq-server
apt-get purge erlang
apt-get autoremove
reboot

wgetをインストールした後:

sudo apt-get -y install socat logrotate init-system-helpers adduser
sudo apt-get -y install wget

erlangをインストールします:

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

rabbitmqをインストールします。

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
于 2019-08-07T14:00:33.033 に答える
-2

qpiddデーモンを確認してください。rabbitmqが必要とするポートをすでに占有している可能性もあります。

sudo netstat -lnp
于 2015-05-04T16:26:57.503 に答える