ChatGPT解决这个技术问题 Extra ChatGPT

mongo - couldn't connect to server 127.0.0.1:27017

I am coming from riak and redis where I never had an issue with this services starting, or to interact.

This is a pervasive problem with mongo and am rather clueless. Restarting does not help.I am new to mongo.

mongo
MongoDB shell version: 2.2.1
connecting to: test
Fri Nov  9 16:44:06 Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js:91
exception: connect failed

This is what I see in the logs.

 now open)
Fri Nov  9 16:44:34 [conn47] end connection 10.29.16.208:5306 (1 connection now open)
Fri Nov  9 16:45:04 [initandlisten] connection accepted from 10.29.16.208:5307 #48 (2 connections now open)
Fri Nov  9 16:45:04 [conn48] end connection 10.29.16.208:5307 (1 connection now open)
Fri Nov  9 16:45:04 [initandlisten] connection accepted from 10.29.16.208:5308 #49 (2 connections now open)
Fri Nov  9 16:45:04 [conn49] end connection 10.29.16.208:5308 (1 connection now open)
Fri Nov  9 16:45:34 [initandlisten] connection accepted from 10.29.16.208:5316 #50 (2 connections now open)
Fri Nov  9 16:45:34 [conn50] end connection 10.29.16.208:5316 (1 connection now open)
Fri Nov  9 16:45:34 [initandlisten] connection accepted from 10.29.16.208:5317 #51 (2 connections now open)
Fri Nov  9 16:45:34 [conn51] end connection 10.29.16.208:5317 (1 connection now open)
Fri Nov  9 16:46:04 [initandlisten] connection accepted from 10.29.16.208:5320 #52 (2 connections now open)
Fri Nov  9 16:46:04 [conn52] end connection 10.29.16.208:5320 (1 connection now open)
Fri Nov  9 16:46:04 [initandlisten] connection accepted from 10.29.16.208:5321 #53 (2 connections now open)
Fri Nov  9 16:46:04 [conn53] end connection 10.29.16.208:5321 (1 conn
As IMO this has nothing to do with programming per se, I'd recommend you to ask this question on serverfault.com.
I was also facing same issue. Its cus mongo Not able to creates folder in C:/data/db I followed this tut mkyong.com/mongodb/how-to-install-mongodb-on-windows
I have faced the same error when using my company laptop and installing MongoDB on C:. Because of administrative privileges and the fact I am prompted with my admin username and password every time I install something or modify anything in C:, that was the reason I could not get mongodb working. After installing it on D:, all worked fine.
an host Alias could be jamming access to 127.0.0.1; If you are on Ubuntu (or any other linux distro) try opening /etc/hosts and see if there is any Alias for 127.0.0.1 and comment it out. Save the host file, restart your computer and try starting the mongod service again (sudo systemctl start mongod).

R
Ravi Hamsa

Normally this caused because you didn't start mongod process before you try starting mongo shell.

Start mongod server

mongod

Open another terminal window

Start mongo shell

mongo

This case worked out for me, i had to do ~>sudo mongod --dbpath /dbpathlocation and then opened the new terminal to run mongo...
what worked for me on macOS Sierra was sudo mongod and then mongo
I had to create a /data/db directory before running mongod
I can't believe that all I had to do is to run mongod in background or another shell before running mongo. Shout out to Ravi Hamsa!.
s
shakthydoss

Resolved.

This problem could be solved by the below mentioned 4 steps

1) Remove .lock file

sudo rm /var/lib/mongodb/mongod.lock 

2) repair the mongodb

mongod -–repair

3) start the mongod server

sudo service mongod start 

4) start the mongo client

mongo

For more details take a look at http://shakthydoss.com/error-couldnt-connect-to-server-127-0-0-127017-srcmongoshellmongo-js-exception-connect-failed/

http://shakthydoss.com/technical/error-couldnt-connect-to-server-127-0-0-127017-srcmongoshellmongo-js-exception-connect-failed/


Just wondering, what is the /var/lib/mongodb/mongod.lock and what went wrong with it?
Item 2 in Ubuntu 18.04 is mongod --repair
This answer needs serious updation, both the link are not working and give 404 not Found. The 1st step of removing the .lock file is not a recommended practice. I just lost all my data. please refer : docs.mongodb.com/manual/tutorial/…
didnt work in my case. shows the same error. i have checked using netstat but port 27017 is not in use
What's the path for MACOS?
Z
Zaheer Ahmed

This method only works if you want to repair your data files without preserving the original files

To find where you dbpath resides- vim /etc/mongodb.conf

check for option dbpath=

(I have dbpath=/var/lib/mongodb)

Default: /data/db/

Typical locations include: /srv/mongodb, /var/lib/mongodb or /opt/mongodb .

Replace the /var/lib/mongodb with your dbpath

sudo rm /var/lib/mongodb/mongod.lock
sudo mongod --dbpath /var/lib/mongodb/ --repair
sudo mongod --dbpath /var/lib/mongodb/ --journal

(Make sure that you leave you terminal running in which you have run above lines, dont press 'Ctrl+c' or quit it.) Type the command to start mongo now in another window.

Hope this works for you ! for those who want to repair your data files while preserving the original files mongo recover


work on ubuntu. --journal fixed my problem. What does really it does? what is --journal for?
Worked for me on fedora 20. Can we now close first terminal window ?
i am using ubuntu 21.04 and this working for me.
B
Bugs

This error is what you would see if the mongo shell was not able to talk to the mongod server.

This could be because the address was wrong (host or IP) or that it was not running. One thing to note is the log trace provided does not cover the "Fri Nov 9 16:44:06" of your mongo timestamp.

Can you:

Provide the command line arguments (if any) used to start your mongod process Provide the log file activity from the mongod startup as well as logs during the mongo shell startup attempt? Confirm that your mongod process is being started on the same machine as the mongo shell?


For windows user: This will resolve the error.
B
Blasanka

I am a windows user and I installed MongoDB in November 2018 and I didn't wanted to setup data/db directories. But after few days, when I open, got an error message:

MongoDB shell version v4.0.4
connecting to: mongodb://127.0.0.1:27017
2018-12-05T20:42:40.108+0530 E QUERY    [js] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: No connection could be made because the target machine actively refused it. :
connect@src/mongo/shell/mongo.js:257:13
@(connect):1:6
exception: connect failed

Then I tried to fix using all of above answers and didn't worked. When I tried to run mongod it said

MongoDB starting : pid=12220 port=27017 dbpath=C:\data\db\ 64-bit host=bla

I tried to change the db path(to program files) through file system and also using cmd but those didnot worked.

Solution that worked for me is:

Opened the Task Manager (ctrl + shift + esc) -> Services tab and there was a MongoDB row with the status stopped. Then I right clicked and clicked start and everything working perfectly :).


This worked for me. Windows users should try this first
This one worked for me ass well. Give it a try if u have same problem....
W
William Hu

MAC OS

Check status

brew services list

Something like:

Name    Status  User Plist
mongodb stopped  

start it

brew services start mongodb

Try it again

mongo or mongo --port 27017


Didn't work for me. I've been struggling dealing with this MongoDB for an hour now. Wow!!!
A
Ali Ashraf

Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: No connection could be made because the target machine actively refused it.

This error caused because Mongo Server been closed

Simple Follow these steps

Open Task Manager Go to >Services Find MongoDB Right click and select Start


F
Finn

In my case:

First I open config file

sudo vi /etc/mongodb.conf

Comment IP and Port like this

#bind_ip = 127.0.0.1
#port = 27017

Then restart mongodb

sudo service mongodb restart
sudo service mongod restart

Finally, it's work :D

finn@Finn ~ $ mongo
MongoDB shell version: 2.4.9
connecting to: test
> exit

Removing the ip/port did not work for me. It actually broke the server even more. The service refused to start back up again...
Be careful with bind_ip. If you comment that out, it will allow remote connections to your database which is obviously a terrible idea unless you have security and auth setup. I believe MongoDB has no users or password by default, so you need to be aware of that.
Work for me too, but dont't know about security after the comment of @agm1984, I will just use this in development mode and after I will use the Atlas Cloud of Mongodb, more secure in my case I think (with my poor server's skills :D)
@AdrienV sure, it's risky if you remove the local IP binding because it will allows to access from the internet. This is just a work around for the development server.
bind_ip was set to an additional unknown ip. Deleting it solved the /db/data error ... ufff
M
Metin Atalay

A little to late with the answer but I've encountered the same issue

Following are the steps which helped me.

Go to C:\ Create "data" folder In "data" create "db" folder open terminal (CMD) -> go to EX:"c:\MongoDB\Server\3.4\bin" type in mongod => this will start mongo server (leave it opened)

Run using a GUI, EX "robomongo"

Or

open new terminal (CMD) -> go to EX:"c:\MongoDB\Server\3.4\bin" type in "mongo" command


Perfect it works for those who are working with mongo on Windows thanks a lot sir
F
Finn

Make sure that your mongo is running. I fixed this problem by trying to repair the mongodb, there I found that the directory required for the db to run was not created. It shows this error

Type: mongod, it will show the error

exception in initAndListen: 29 Data directory /data/db not found., terminating

Error happen because dbpath /data/db/ (default config) does not exist. You need to create data folder and set permission for it.

Then I create a folder on my system by the command

sudo mkdir -p /data/db/ and sudo chown id -u /data/db

then I run the mongo again and it worked.


R
RobC

I face same issue after searching a lot I solve this by following :

sudo service mongodb stop 

sudo rm /var/lib/mongodb/mongod.lock 

sudo mongod --repair --dbpath /var/lib/mongodb 

sudo mongod --fork --logpath /var/lib/mongodb/mongodb.log --dbpath /var/lib/mongodb 

sudo service mongodb start

this worked! but it is temporary, when I restart my system it didn't run again
Same here, restarting with sudo reboot resulted with Connection refused : connect@src/mongo/shell/mongo.js:372:17
Also it works with mongosh --host 127.0.0.1 --port 27017 but not designated host and port
J
John Powell

If all the above solution does not work: go to service (start>search>services) and start mongodb service. Then, in a cmd prompt, after going to bin, type :/>mongo


B
Bahodir Boydedayev

I also have the same problem then I got fixed by these two lines of code. Hope, it helps

systemctl start mongod
systemctl enable mongod

Fixed my problem!
M
MWiesner

To connect with mongo we have to first start 'mongod' services. following output you can see :

$ mongod
2017-03-05T00:31:39.055+0530 I CONTROL  [initandlisten] MongoDB starting : pid=1481 port=27017 dbpath=/data/db 64-bit host=Prabhu-Nandans-Mac.local
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] db version v3.4.2
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] git version: 3f76e40c105fc223b3e5aac3e20dcd026b83b38b
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2k  26 Jan 2017
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] allocator: system
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] modules: none
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] build environment:
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten]     distarch: x86_64
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten]     target_arch: x86_64
2017-03-05T00:31:39.056+0530 I CONTROL  [initandlisten] options: {}
2017-03-05T00:31:39.056+0530 W -        [initandlisten] Detected unclean shutdown - /data/db/mongod.lock is not empty.
2017-03-05T00:31:39.057+0530 I -        [initandlisten] Detected data files in /data/db created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
2017-03-05T00:31:39.057+0530 W STORAGE  [initandlisten] Recovering data from the last clean checkpoint.
2017-03-05T00:31:39.057+0530 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=3584M,session_max=20000,eviction=(threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] 
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] 
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] 
2017-03-05T00:31:39.620+0530 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
2017-03-05T00:31:39.643+0530 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
2017-03-05T00:31:39.643+0530 I NETWORK  [thread1] waiting for connections on port 27017
2017-03-05T00:31:40.008+0530 I FTDC     [ftdc] Unclean full-time diagnostic data capture shutdown detected, found interim file, some metrics may have been lost. OK
2017-03-05T00:32:03.832+0530 I NETWORK  [thread1] connection accepted from 127.0.0.1:49806 #1 (1 connection now open)
2017-03-05T00:32:03.833+0530 I NETWORK  [conn1] received client metadata from 127.0.0.1:49806 conn1: { application: { name: "MongoDB Shell" }, driver: { name: "MongoDB Internal Client", version: "3.4.2" }, os: { type: "Darwin", name: "Mac OS X", architecture: "x86_64", version: "16.4.0" } }
2017-03-05T00:32:08.376+0530 I -        [conn1] end connection 127.0.0.1:49806 (1 connection now open)

After that open another terminal and just type 'mongo'.

Following is output you can see :

$ mongo
MongoDB shell version v3.4.2
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.2

Your issue solved :)


M
MILLION GASHAW

Start monogdb service using

sudo service mongod start 

then from the new window or terminal start mongo client using

mongo

N
Natasha

After exhausting lots and lots of sulotions, I did-

sudo brew services start mongodb-community rather than sudo service mongod start and it worked.

So, first try

sudo brew services start mongodb-community

and then to start the mongo shell, do-

mongo

b
bensbenj

FOR MACOS

Check the status of the services:

brew services

If you have something like:

Name              Status
mongodb-community error

So you can just to stop and restart the service like this:

brew services stop mongodb-community
brew services start mongodb-community

A
Amnesh Goel

This was happening with me today and I resolved it in following way.

Machine: I'm using Windows 10 machine and downloaded the latest MongoDB - Community edition.

So, the problem was, I did not have C:\data\db created.

Without creating C:\data\db, I opened CMD terminal and started the database using mongod command at terminal

C:\YourInstallationPath\bin>mongod

And when I fired mongo command then I was getting the problem.

Twist, I created the necessary folders but still was getting the problem. And this is because mongo server was already running. To fix it, I fired up mongod command again, and it automatically referenced to C:\data\db.

Other users have suggested to add C:\data\db but did not talk about executing mongod again, which exactly solved my problem.


For those that installed mongodb-community using brew on Mac-OS Try this out. brew services start mongodb-community or brew services restart mongodb-community for those that had started the service already
M
Mandeep Gill

I had same problem to connect mongodb after install using brew on macOS.

The problem was also mongod.lock but before i had mongodb 3.6 installed and database directory was /usr/local/var/mongodb and it have old files and mongod.lock

Simple i moved my old database files to different folder and removed everything from /usr/local/var/mongodb

Then restarted :

brew services restart mongodb

And it's working fine now.


I don't know the cause of the issue but it doesn't work for me, I had to do 'sudo brew services start mongodb-community'.
Mostly you don't use sudo on brew and if you are using sudo then it means you have permissions issue.
R
Rahul

I was getting this error on ubuntu but you can try with the following command:

sudo service mongod start

s
shivam kumar chaturvedi

You can try with following command:

sudo service mongod start


almost there, but if you have installed with brew then it won't work. You gotta do 'sudo brew services start mongodb-community'
y
ysf

in my case in windows and ubuntu, i needed to create /data/db folder in root. In ubuntu, i needed one additional option; to give permissions for directory.

windows

mkdir c:/data/db

ubuntu:

sudo mkdir -p /data/db
sudo chmod 700 /data/db

then run

sudo service mongod start

check

sudo service mongod status

and then run

mongo

T
Tun

Remove mongod.lock file. And run "mongod -repair". uninstall/reinstall mongod service fixed that problem for me.

Thanks.


e
edencorbin

Another solution that resolved this same error for me, though this one might only be if you are accessing mongo (locally) via a SSH connection via a virtual machine (at least that's my setup), and may be a linux specific environment variable issue:

export LC_ALL=C

Also, I have had more success running mongo as a daemon service then with sudo service start, my understanding is this uses command line arguments rather then the config file so it likely is an issue with my config file:

mongod --fork --logpath /var/log/mongodb.log --auth --port 27017 --dbpath /var/lib/mongodb/admin

A
Amin Balogun

Create the folder C:data/db if it doesn't already exist on your computer. Turns out MongoDB requires the existence of this folder structure 'data/db' to run. I hope this helps someone.


t
tsveti_iko

The cause by me was the space - run this in the console:

df -h

or more specifically:

du -hs /var/lib/mongodb/ 

to check he disk usage. If it's ~ 99% - just clean up some space and try again!


M
Monte Cristo

First, go to c:\mongodb\bin> to turn on mongoDB, if you see in console that mongo is listening in port 27017, it is OK If not, close console and create folder c:\data\db and start mongod again


A
Ashwin J

if all the solution above doesn't work out perhaps then this might be one to help. Somewhere down the line you may have made connection to your local mongodb database via vagrant boxes.

vagrant up and then ssh into your vagrant machine in which you've made connection with mongodb (vagrant ssh vagrant_box_name) comment out the bind_ip line from /etc/mongod.conf using # (sudo nano /etc/mongod.conf ) restart your mongodb daemon service (sudo service mongod restart) voila...


C
Code Tree

OK, this may be strange. My error happened because my log grew exponentially and clogged up server space hence mongo didn't get enough space to store anything.

so I cleared the log

> /var/log/mongod.log

d
drops

try this one:

get into the bin folder on terminal, then write:

sudo ./mongod --dbpath <write_here_the_path_to_your_database>, click enter. (always do same thing).

then sudo ./mongo


关注公众号,不定期副业成功案例分享
Follow WeChat

Success story sharing

Want to stay one step ahead of the latest teleworks?

Subscribe Now