I installed mongodb in Ubuntu14.04 server
I was not able to connect to mongodb via "mongoimport", "mongodump", "mongostat", etc. It always show "no reachable server"
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
Somehow, I was able to connect with mongo shell
mongo --port 27017 MongoDB shell version: 3.0.6 connecting to: 127.0.0.1:27017/test
At first, I doubt if it cause by my iptables, so I flush all iptables rules and create rules for ALL accept, but it still same
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
I search the stackOverflow and google and someone told marked off bind_ip or set bind_ip to 0.0.0.0, I tried all but still failed.
Below are my mangodb config, would any one can help me to check? Thanks for your help
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
A temporary workaround is to add the host
param to your mongoimport
call, letting mongo know that the host is your own machine (127.0.0.1
):
mongoimport --host=127.0.0.1
The full command in your case is then:
mongoimport --host=127.0.0.1 \ --db test --collection restaurants --drop --file dataset.json
(Source: ranjeetcao @ mongorestore Failed: no reachable servers)
Update:
Updating to Mongo >= 3.0.7 should solve the issue
(Source: Colin Marshall @ mongorestore Failed: no reachable servers)
Update 2:
It seems the Bug is still happening for some users.
There's also an open JIRA issue here.
(Source: James Chien @ this question thread)
Update 3:
In some cases, this can be caused by Mongo running as a ReplicaSet. To solve this, as far as I've seen, one can either disable the ReplicaSet functionality or reset it. See:
(Source: Maxim Yefremov @ mongorestore Failed: no reachable servers)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With