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.x.x.1ではありませんそれは何らかの理由でx.x.x.2です(しかし、そのアドレスにバインドするように私の設定を変更し、また、役に立たないパブリック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
を使用して手動で実行してみました。
誰かこれに出くわしたことはありますか?または何か提案はありますか?
THX
更新:
再起動後-ここにログがあります:
** 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
mongo 199.21.114.XX
を実行して、IP(199.21.114.XX)を指定する必要があります。
それ以外の場合、ローカルホストでもリッスンしたい場合は、設定ファイルのbind_ip
設定を削除する必要があります。
更新ファイアウォール設定を確認します。外部IPに接続しているため、ローカルボックスからでもブロックするように構成できます。
/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
Sudo rm /var/lib/mongodb/mongod.lock
ばかげたミスだけで同じ問題が発生しました。
最初に問題のない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
うまくいけば、この答えは誰かのために役立ちます
デフォルトでは、mongo
consoleコマンドを実行すると、ローカルホストでmongodbが検索されるため、127.0.0.1
ローカルループバックであるIP。また、mongod
のデフォルト設定がlocalhostで利用可能である必要があります。 authをオンにしていない限り、今のところこの方法で実行することをお勧めします。認証が有効になっているか、データベースがパブリックIPで公開されていることを確認してください。
Localhostまたはデフォルトの構成以外のホストに接続する場合は、次のようにします。
mongo <Host>
/etc/mongod.conf内
私が変更され、
bindIp: 127.0.0.1
に
bindIp: 0.0.0.0
これはすべてのポートです。ええ、私はそれが危険であることを知っていますが、私は内部ネットワークで実行しています。
ところでコメントアウト#bindIp: 127.0.0.1
はUbuntu 18で動作していません。
次の手順が役立つ場合があります。
5最後に、コマンド "mongo"を呼び出します。
別の方法は、mongodオプションparam bind_ipを追加することです
mongod -–help
--bind_ip argリスンするIPアドレスのカンマ区切りリスト-デフォルトではlocalhost
--bind_ip_allすべてのIPアドレスにバインド
mongod --fork --logpath /var/log/mongodb.log --dbpath /data/db --bind_ip 0.0.0.0