0

私はmongodbをosxラップトップとリモートubuntuサーバーにローカルにインストールしています。どちらもmongodbを実行しており、ポート28017のhttp診断を使用してこれを確認できます。両方のコンピューターで同じコードを実行しています。osxではすべてが正常に機能しますが、UbuntuではNodeJSを介してデータベースに接続できません。私はこのエラーを受け取り続けます:

Error: failed to connect to [localhost:27017]]
message:  listen EADDRNOTAVAIL
stack:  Error: listen EADDRNOTAVAIL
    at errnoException (net.js:769:11)
    at Server._listen2 (net.js:892:19)
    at listen (net.js:936:10)
    at Server.listen (net.js:993:9)
    at asyncCallback (dns.js:67:16)
    at Object.onanswer [as oncomplete] (dns.js:120:9)

私が理解していないのは、mongoコマンドラインインターフェイスを介してUbuntuにローカルに接続できることです。OSXコンピューターのmongoコマンドを使用してUbuntuのデータベースに接続することもできます。したがって、MongoDB自体のインストールに問題はないようです。

NodeJS経由で接続できない理由を誰かが考えられますか?私はmongodbとmongooseパッケージを使ってみました。どちらも同じエラーが発生します。

これが私が試した2つの方法です:

var mongo = require("mongodb");
var host = "localhost";
var port = mongo.Connection.DEFAULT_PORT;
var db = new mongo.Db('node-mongo-examples', new mongo.Server(host, port, {}), {});
db.open(function(err, db){
    if(err){
        log.error('MongoDB connection error:', err);
    }else{
        log.info("OPEN MONGO CONNECTION");
    }
});

そしてマングースと:

var mongoose = require('mongoose');
var db = mongoose.createConnection('localhost', 'node-mongo-examples');

db.on('error', function(err){
  log.error('MongoDB connection error:', err);
});

db.once('open', function () {
  log.debug("OPEN MONGO CONNECTION");
});

ログには特別なことは何も表示されておらず、何も起こりません

***** SERVER RESTARTED *****

Wed Sep 26 18:00:18 [initandlisten] MongoDB starting : pid=13377 port=27017 dbpath=/var/lib/mongodb 64-bit host=octo-dev
Wed Sep 26 18:00:18 [initandlisten] db version v2.2.0, pdfile version 4.5
Wed Sep 26 18:00:18 [initandlisten] git version: f5e83eae9cfbec7fb7a071321928f00d1b0c5207
Wed Sep 26 18:00:18 [initandlisten] build info: Linux ip-10-2-29-40 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_49
Wed Sep 26 18:00:18 [initandlisten] options: { config: "/etc/mongodb.conf", dbpath: "/var/lib/mongodb", logappend: "true", logpath: "/var/log/mongodb/mongodb.log" }
Wed Sep 26 18:00:18 [initandlisten] journal dir=/var/lib/mongodb/journal
Wed Sep 26 18:00:18 [initandlisten] recover : no journal files present, no recovery needed
Wed Sep 26 18:00:18 [websvr] admin web console waiting for connections on port 28017
Wed Sep 26 18:00:18 [initandlisten] waiting for connections on port 27017

.....mongoコマンドラインインターフェイスを介して接続する場合を除きます。

Wed Sep 26 18:30:40 [initandlisten] connection accepted from 127.0.0.1:38229 #3 (1 connection now open)

試すものが足りなくなった。これをトラブルシューティングするための提案はありますか?


いくつかの追加情報

sudo netstat -tulpn
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:27017           0.0.0.0:*               LISTEN      13377/mongod    
tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      885/mysqld      
tcp        0      0 0.0.0.0:1935            0.0.0.0:*               LISTEN      1102/java       
tcp        0      0 0.0.0.0:9999            0.0.0.0:*               LISTEN      1102/java       
tcp        0      0 192.87.219.76:10000     0.0.0.0:*               LISTEN      31171/webserver 
tcp        0      0 0.0.0.0:8080            0.0.0.0:*               LISTEN      1387/java       
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1076/apache2    
tcp        0      0 0.0.0.0:28017           0.0.0.0:*               LISTEN      13377/mongod    
tcp        0      0 0.0.0.0:48466           0.0.0.0:*               LISTEN      12418/java      
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      3507/sshd       
tcp        0      0 127.0.0.1:9016          0.0.0.0:*               LISTEN      12418/java      
tcp        0      0 0.0.0.0:5080            0.0.0.0:*               LISTEN      1102/java       
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      1216/master     
tcp        0      0 0.0.0.0:41018           0.0.0.0:*               LISTEN      12418/java      
tcp        0      0 0.0.0.0:8443            0.0.0.0:*               LISTEN      1102/java       
tcp        0      0 0.0.0.0:9090            0.0.0.0:*               LISTEN      12418/java      
tcp        0      0 0.0.0.0:29090           0.0.0.0:*               LISTEN      12418/java      
tcp        0      0 127.0.0.1:8100          0.0.0.0:*               LISTEN      8535/soffice.bin
tcp        0      0 127.0.0.1:8005          0.0.0.0:*               LISTEN      1387/java       
tcp        0      0 0.0.0.0:389             0.0.0.0:*               LISTEN      887/slapd       
tcp        0      0 0.0.0.0:33736           0.0.0.0:*               LISTEN      1102/java       
tcp6       0      0 :::22                   :::*                    LISTEN      3507/sshd       
tcp6       0      0 :::389                  :::*                    LISTEN      887/slapd       
udp        0      0 192.87.219.76:123       0.0.0.0:*                           721/ntpd        
udp        0      0 127.0.0.1:123           0.0.0.0:*                           721/ntpd        
udp        0      0 0.0.0.0:123             0.0.0.0:*                           721/ntpd        
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           797/avahi-daemon: r
udp        0      0 0.0.0.0:55248           0.0.0.0:*                           797/avahi-daemon: r
udp6       0      0 :::123                  :::*                                721/ntpd        
udp6       0      0 :::35920                :::*                                797/avahi-daemon: r
udp6       0      0 :::5353                 :::*                                797/avahi-daemon: r
4

3 に答える 3

1

27017Ubuntu の Web サーバーに対してポートが開かれていることを確認します。

于 2012-09-26T20:46:47.177 に答える
1

問題発見!!システムにめちゃくちゃな /etc/hosts ファイルがありました。異常な localhost 構成の何か。このファイルを修正すると、すべてが解決しました:D

于 2012-09-27T09:32:14.710 に答える
0

端末からコマンドを実行してみてくださいmongo。mongodb に問題がある場合はエラーが表示されます。

于 2012-09-27T05:56:05.180 に答える