我在Ubuntu14安装了mongodb.04服务器

我无法通过"mongoimport"、"mongodump"、"mongostat"等连接到mongodb.它总是显示"无法访问服务器"

mongoimport --db test --collection restaurants --drop --file dataset.json
2015-08-25T13:08:29.802+0800    [........................] test.restaurants 0.0 B/11.3 MB (0.0%)
2015-08-25T13:08:30.306+0800    Failed: error connecting to db server: no reachable servers
2015-08-25T13:08:30.306+0800    imported 0 documents

不知怎么的,我能和mongo shell取得联系

mongo --port 27017
MongoDB shell version: 3.0.6
connecting to: 127.0.0.1:27017/test

首先,我怀疑它是否是由我的iptables引起的,所以我刷新所有iptables规则并为所有accept创建规则,但它仍然是一样的

 sudo iptables -S
    -P INPUT ACCEPT
    -P FORWARD ACCEPT
    -P OUTPUT ACCEPT
    -A INPUT -j ACCEPT
    -A INPUT -i lo -j ACCEPT
    -A FORWARD -j ACCEPT
    -A OUTPUT -j ACCEPT
    -A OUTPUT -o lo -j ACCEPT

我搜索了stackOverflow和google,有人告诉我

下面是我的mangodb配置,有人能帮我判断一下吗?

james@localhost:~$ cat /etc/mongod.conf 
# mongod.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/mongod.log

logappend=true

port = 27017

# Listen to local interface only. Comment out to listen on all interfaces. 
#bind_ip = 127.0.0.1
# Disables write-ahead journaling
# nojournal = true

# Enables periodic logging of CPU utilization and I/O wait
#cpu = true

# Turn on/off security.  Off is currently the default
#noauth = true
#auth = true

# Verbose logging output.
verbose = true

# Inspect all client data for validity on receipt (useful for
# developing drivers)
#objcheck = true

# Enable db quota management
#quota = true

# Set oplogging level where n is
#   0=off (default)
#   1=W
#   2=R
#   3=both
#   7=W+some reads
#diaglog = 0

# Ignore query hints
#nohints = true

# Enable the HTTP interface (Defaults to port 28017).
#httpinterface = true

# Turns off server-side scripting.  This will result in greatly limited
# functionality
#noscripting = true

# Turns off table scans.  Any query that would do a table scan fails.
#notablescan = true

# Disable data file preallocation.
#noprealloc = true

# Specify .ns file size for new databases.
# nssize = <size>

# Replication Options

# in replicated mongo databases, specify the replica set name here
#replSet=setname
# maximum size in megabytes for replication operation log
#oplogSize=1024
# path to a key file storing authentication info for connections
# between replica set members
#keyFile=/path/to/keyfile

推荐答案

一个临时解决方法是将host参数添加到mongoimport呼叫中,让mongo知道主机是您自己的机器(127.0.0.1):

mongoimport --host=127.0.0.1

在您的情况下,完整的命令是:

mongoimport --host=127.0.0.1 \
  --db test --collection restaurants --drop --file dataset.json

(来源:ranjeetcao @ mongorestore Failed: no reachable servers)


Update:

Updating to Mongo >= 3.0.7 should solve the issue

(来源:Colin Marshall @ mongorestore Failed: no reachable servers)


Update 2:

这似乎是错误is still happening for some users.

还有一个公开的JIRA第here期.

(来源:James Chien @ this question thread)


Update 3:

在某些情况下,这可能是由于Mongo作为复制集运行造成的.要解决这个问题,据我所知,可以禁用ReplicaSet功能或重置它.见:

(来源:Maxim Yefremov @ mongorestore Failed: no reachable servers)

Mongodb相关问答推荐

MongoDB/Mongoose查询:使用优先约束检索从位置A到位置B的路径

更新值导致错误 Golang MongoDB

如何使用指南针连接到 mongodb replicaset (k8s)

使用新字段插入数据或使用 updateOne mongodb 有条件地更新

在 MongoDB 中打开连接的 SocketTimeout

查找对象是否在预保存钩子mongoose中更改

无法使用机器 ip 连接到 mongodb

MongoDB 2.1 聚合框架总和匹配名称的数组元素

如何检索 MongoDb 集合验证器规则?

在 MongoDB 中创建简短、唯一的对象 ID

mongodb 模式设计命名约定

将 MongoDB 数据库复制到本地计算机

如何根据其他字段添加条件模式?

从 id 删除 PyMongo 中的文档

如何从 Mongoose 模型对象中获取集合名称

MongoDB MapReduce - 发出一个键/一个值不调用reduce

Mongoose - 获取 _id 列表而不是具有 _id 的对象数组

带有 either or查询的mongoose findOne

使用 Mongoose ORM 的杀手锏是什么?

如何在 Windows 上停止 mongodb 服务器?