23

MongoDB(最新の安定版ではなく標準のUbuntuビルド)をインストールしたばかりですが、何らかの理由で接続できません:

Mon Feb  6 03:11:22 Error: couldn't connect to server 127.0.0.1 shell/mongo.js:79
exception: connect failed

今、私のマシンは127.xx1ではありません。何らかの理由でxxx2です(しかし、そのアドレスにバインドするように構成を変更しました。また、役に立たなかったパブリックIPにバインドしようとしました。

構成:

#mongodb.conf

# Where to store the data.

# Note: if you run mongodb as a non-root user (recommended) you may
# need to create and set permissions for this directory manually,
# e.g., if the parent directory isn't mutable by the mongodb user.
dbpath=/var/lib/mongodb

#where to log
logpath=/var/log/mongodb/mongodb.log

logappend=true

bind_ip = 199.21.114.XX
port = 27017

ログを確認しましたが、スタートアップ情報のみが表示されています。

また、デーモンも実行されていることを確認しました。これは、手動で実行してみました--fork

誰かがこれに遭遇したことがありますか?または何か提案はありますか?

どうも

アップデート:

再起動後-ログは次のとおりです。

** WARNING: You are running in OpenVZ. This is known to be broken!!!

Tue Feb  7 19:43:32 [initandlisten] db version v1.8.2, pdfile version 4.5
Tue Feb  7 19:43:32 [initandlisten] git version: nogitversion
Tue Feb  7 19:43:32 [initandlisten] build sys info: Linux allspice 2.6.24-28-se$
Tue Feb  7 19:43:32 [initandlisten] *** warning: spider monkey build without ut$
Tue Feb  7 19:43:32 [initandlisten] waiting for connections on port 27017
Tue Feb  7 19:43:32 [websvr] web admin interface listening on port 28017
4

10 に答える 10

25

/etc/mongod.confファイルの次の行をコメントアウトすることで、この問題を解決しました。

# Listen to local interface only. Comment out to listen on all interfaces. 
#bind_ip = 127.0.0.1

mongodプロセスを再起動して、この構成変更に従う必要があります。

sudo service mongod restart
于 2014-09-24T16:53:25.700 に答える
16

を実行して、IP(199.21.114.XX)を指定する必要がありますmongo 199.21.114.XX

それ以外の場合、ローカルホストでもリッスンする場合は、構成bind_ipファイルの設定を削除する必要があります。

更新ファイアウォール構成を確認してください。外部IPに接続しているため、ローカルボックスからでもブロックするように構成できます。

于 2012-02-05T23:43:45.953 に答える
11
sudo rm /var/lib/mongodb/mongod.lock
于 2012-02-28T02:17:28.360 に答える
4

ばかげた間違いだけで同じ問題が発生しました。

最初に問題のないmongodbファイルを削除します

rm -rf /tmp/mongodb-27017.sock

/etc/mongod.conf内で間違いを犯した場所

# network interfaces
net:
  port: 27017
 #bindIp: 127.0.0.1
bindIp: privateIp

それ以外の

net:
  port: 27017
  bindIp: 10.1.2.4

利用可能なすべてのIPを聞くため

bindIp: [127.0.0.1,10.128.0.2]

mongodbを再起動します

sudo service mongod start

うまくいけば、この答えは誰かのために役立ちます

于 2016-06-07T08:01:54.007 に答える
2

デフォルトでは、mongoコンソールコマンドを実行すると、ローカルホストでmongodbが検索されるため、127.0.0.1ローカルループバックであるIPが検索されます。また、のデフォルト設定はmongodローカルホストで利用可能である必要があります。authをオンにしていない限り、今のところこの方法で開始することをお勧めします。認証が有効になっていること、またはデータベースがパブリックIPでオープンに実行されていることを確認してください。

localhostまたはデフォルトの構成以外のホストに接続する場合は、次のようにします。

mongo <host>
于 2012-02-06T00:15:37.677 に答える
2

次の手順が役立ちます:

  1. ターミナルを開き、「sudorm/var/lib/mongodb/mongod.lock」を実行します
  2. 「 sudomongod--repair」を実行します
  3. 今「sudostartmongodb
  4. ここで、mongodbステータス「sudostatusmongodb」のステータスを確認するだけです。

5最後に、コマンド「mongo」を呼び出すだけです。

于 2016-01-21T14:38:26.600 に答える
2

/etc/mongod.conf内

私が変更され、

bindIp: 127.0.0.1

bindIp: 0.0.0.0

これはすべてのポートです。ええ、私はそれが危険であることを知っています、しかし私は内部ネットワークで走っています。

ところで、Ubuntu 18で実行しているので、コメントアウト#bindIp: 127.0.0.1は機能しませんでした。

于 2018-09-07T07:38:26.127 に答える
1

実行中にこれにぶつかりましたmongodが、まだ「適切に」実行されていません。インストール後に起動するのを待つより良い方法があると思いますが、を追加するsleep 10と修正されるようです。

少し控えめなアプローチはtail -f、ログファイルにアクセスして、指定したインターフェイスでリッスンしていることを通知するイベントを探すことです。

local log=/var/log/mongodb/mongod.log
sudo -u mongodb touch "$log"
service mongod start &
launcher=$!
tail -0f "$log" |
grep -q 'port: 27017'
wait "$launcher"
sleep 1

決勝戦sleepはちょっとした必死の行為です。起動をログに記録してから、正常に起動してリッスンするまで、少し時間がかかるようです。

ステータスがアクティブな場合でも、BashシェルスクリプトがMongoDBに接続しないも参照してください。

于 2021-05-21T11:07:07.533 に答える
0

別の方法は、mongodオプションparambind_ipを追加することです

mongod -–help

--bind_ipargコンマで区切られたリッスンするIPアドレスのリスト-デフォルトではlocalhost

--bind_ip_allはすべてのIPアドレスにバインドします

mongod --fork --logpath /var/log/mongodb.log --dbpath /data/db --bind_ip 0.0.0.0
于 2018-12-17T09:29:17.810 に答える
0

Windowsを使用している場合は、サービスを実行してから、mongoDBサーバーが実行されていることを確認します。実行されていない場合は、起動します。

mongoDBサーバーは、デフォルトでlocalhost:27017で実行されます。localhost:27017をクリックして、最初に管理者ユーザーを作成します。

于 2020-05-11T02:52:56.313 に答える