可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I recently installed mongodb-2.6.0 with Homebrew.
After successfully installed, I tried to connect using the mongo
command. I am receiving the following errors which do not allow me to connect:
Failed to connect to 127.0.0.1:27017, reason: errno:61 Connection refused
Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed at src/mongo/shell/mongo.js:146
exception: connect failed
回答1:
It can happen when the mongodb service is not running on the mac. To start it, I tried
brew services start mongodb
and it worked.
Edit: According to the discussion on this PR on homebrew: https://github.com/Homebrew/homebrew/issues/30628
brew services
is deprecated, I looked around on SO and found these answers now answer the question: What is the correct way to start a mongod service on linux / OS X?
回答2:
I encountered the exact same issue and here is a clear step by step process to avoid this error.
Step 1 - Installation ( Don't follow this step if you have already installed MongoDB ):
brew update
brew install mongodb
Step 2 - Run Mongo Daemon:
mkdir -p /data/db
sudo mongod
Step 3 - Run Mongo Shell Interface:
mongo
In this sequence, I was able to run the mongo
command without any error. I have also detailed the error trace and its solution on this blog.
回答3:
To solve your issue you need to follow the instructions which are then given to you by brew after you use "brew install mongodb".
To have launchd start mongodb at login:
ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents
Then to load mongodb now:
launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
Or, if you don't want/need launchctl, you can just run:
mongod --config /usr/local/etc/mongod.conf
You may be able to just run that last command, but it didn't work for me and I needed to run the second command. To save me in the future. I just ran the first command too. Hope that helps!
EDIT Hrishi's method of using brew services mongodb start
worked good for me. I think they should include this in the mongo docs.
回答4:
In another tab, you can start the mongo shell with
mongod
Then return to the previous tab and try again. If you're having trouble setting up your mongoshell, check out this link on the mongo shell: http://docs.mongodb.org/manual/tutorial/manage-mongodb-processes/
or this link on installing mongodb:
http://docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/
回答5:
I was having the same issue when calling mongod
from the command line.
I resolved this by calling instead sudo mongod
.
回答6:
I had the same error but a different root cause. Thought I'd post the solution here in case anyone else runs into the problem. I got this error after my Mac improperly shut down while I was running mongorestore -d foo dump/foo/
.
tl;dr: I fixed the problem by removing the damaged foo.ns
file along with foo.0
, foo.1
,... from my data folder /usr/local/var/mongodb/
. Then I restarted the mongo server with brew services restart mongodb
and I was back to normal.
Details: I kept getting the error even after trying to start or restart the mongodb service via brew or launchctl. Eventually I ran
mongod --dbpath /usr/local/var/mongodb
and saw that the service was not actually starting, and the start sequence included the following error:
[initandlisten] bad .ns file: /usr/local/var/mongodb/foo.ns
[initandlisten] User Assertion: 10079:bad .ns file length, cannot open database
I got rid of the bad .ns
file and the rest of the data files, and the next time I started the service I was good to go.
回答7:
for me on osx, I had to kill old running instance, then restarting worked.
$>ps -aef | grep mongo
502 8047 1 0 11:52AM ?? 0:00.23 /usr/local/opt/mongodb/bin/mongod --config /usr/local/etc/mongod.conf
$>sudo kill 8047
$>sudo mongod
回答8:
I got this error after I upgraded to mongo 3.6 with homebrew.
The log /usr/local/var/log/mongodb/mongo.log
contained the message shutting down with code:62
. This error code means that the existing database is too old to run with the current version of mongo.
I found 2 solutions in another SO question:
- Delete your database folder (
/usr/local/var/mongodb
)
- Or follow the upgrade procedure
I chose to upgrade. In my case, that meant I had to downgrade to 3.4, run a command in the mongo console, then upgrade again. Mongo requires you to upgrade one major version at a time, so depending on how far back you were, there could be additional steps. The docs will guide you.
The brew switch
* and brew services restart
commands made swapping between versions relatively painless.
回答9:
My guess is that you do not have a running database while trying to access testing through the "mongo" command.
First run this command in terminal:
mongod
Then open another terminal window and run:
mongo
Everything should be working now.
回答10:
My similar error is resolved by deleting "sudo rm /data/db/mongod.lock" file while trying to run mongod.
Now u can run mongod and then mongo.
回答11:
If you have already installed MongoDB then first try to run mongod as a sudo user, I was facing the issue because of not running mongod as a superuser.
I have pasted the o/p for both the commands(mongod and sudo mongod) at very bottom, you can check that too but
First try this
sudo mongod
not this
mongod
I had installed MongoDB on my MAC OS X Sierra 10.12.6 by by running the following command in sequence.
brew update
brew install mongodb --devel
brew services start mongodb
then created a directory to which mongod process will write the data, this is optional as mongod process takes it by default, see this useful guide at https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/
sudo mkdir -p /data/db
Finally started mongod process as follows
sudo mongod
Oputput of mongod (failed) and sudo mongod (succeeded) commands on my terminal.
MacBook-Pro-2:appscheck admin$ mongod
2017-12-10T08:12:06.166+0530 I CONTROL [initandlisten] MongoDB starting : pid=2698 port=27017 dbpath=/data/db 64-bit host=MacBook-Pro-2.local
2017-12-10T08:12:06.166+0530 I CONTROL [initandlisten] db version v3.4.10
2017-12-10T08:12:06.166+0530 I CONTROL [initandlisten] git version: 078f28920cb24de0dd479b5ea6c66c644f6326e9
2017-12-10T08:12:06.166+0530 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2n 7 Dec 2017
2017-12-10T08:12:06.166+0530 I CONTROL [initandlisten] allocator: system
2017-12-10T08:12:06.166+0530 I CONTROL [initandlisten] modules: none
2017-12-10T08:12:06.166+0530 I CONTROL [initandlisten] build environment:
2017-12-10T08:12:06.166+0530 I CONTROL [initandlisten] distarch: x86_64
2017-12-10T08:12:06.166+0530 I CONTROL [initandlisten] target_arch: x86_64
2017-12-10T08:12:06.166+0530 I CONTROL [initandlisten] options: {}
2017-12-10T08:12:06.166+0530 I STORAGE [initandlisten] exception in initAndListen: 20 Attempted to create a lock file on a read-only directory: /data/db, terminating
2017-12-10T08:12:06.166+0530 I NETWORK [initandlisten] shutdown: going to close listening sockets...
2017-12-10T08:12:06.166+0530 I NETWORK [initandlisten] shutdown: going to flush diaglog...
2017-12-10T08:12:06.167+0530 I CONTROL [initandlisten] now exiting
2017-12-10T08:12:06.167+0530 I CONTROL [initandlisten] shutting down with code:100
MacBook-Pro-2:appscheck admin$ sudo mongod
Password:
2017-12-10T08:12:14.084+0530 I CONTROL [initandlisten] MongoDB starting : pid=2700 port=27017 dbpath=/data/db 64-bit host=MacBook-Pro-2.local
2017-12-10T08:12:14.084+0530 I CONTROL [initandlisten] db version v3.4.10
2017-12-10T08:12:14.084+0530 I CONTROL [initandlisten] git version: 078f28920cb24de0dd479b5ea6c66c644f6326e9
2017-12-10T08:12:14.084+0530 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.2n 7 Dec 2017
2017-12-10T08:12:14.084+0530 I CONTROL [initandlisten] allocator: system
2017-12-10T08:12:14.084+0530 I CONTROL [initandlisten] modules: none
2017-12-10T08:12:14.084+0530 I CONTROL [initandlisten] build environment:
2017-12-10T08:12:14.084+0530 I CONTROL [initandlisten] distarch: x86_64
2017-12-10T08:12:14.084+0530 I CONTROL [initandlisten] target_arch: x86_64
2017-12-10T08:12:14.084+0530 I CONTROL [initandlisten] options: {}
2017-12-10T08:12:14.084+0530 I STORAGE [initandlisten] wiredtiger_open config: create,cache_size=7680M,session_max=20000,eviction=(threads_min=4,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-12-10T08:12:14.472+0530 I CONTROL [initandlisten]
2017-12-10T08:12:14.472+0530 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-12-10T08:12:14.472+0530 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2017-12-10T08:12:14.472+0530 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2017-12-10T08:12:14.472+0530 I CONTROL [initandlisten]
2017-12-10T08:12:14.472+0530 I CONTROL [initandlisten]
2017-12-10T08:12:14.472+0530 I CONTROL [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
2017-12-10T08:12:14.560+0530 I FTDC [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
2017-12-10T08:12:14.707+0530 I INDEX [initandlisten] build index on: admin.system.version properties: { v: 2, key: { version: 1 }, name: "incompatible_with_version_32", ns: "admin.system.version" }
2017-12-10T08:12:14.707+0530 I INDEX [initandlisten] building index using bulk method; build may temporarily use up to 500 megabytes of RAM
2017-12-10T08:12:14.719+0530 I INDEX [initandlisten] build index done. scanned 0 total records. 0 secs
2017-12-10T08:12:14.720+0530 I COMMAND [initandlisten] setting featureCompatibilityVersion to 3.4
2017-12-10T08:12:14.720+0530 I NETWORK [thread1] waiting for connections on port 27017
Then I opened new terminal to start querying the MongoDB, it worked.
MacBook-Pro-2:appscheck admin$ mongo
MongoDB shell version v3.4.10
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.10
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
Server has startup warnings:
2017-12-10T08:12:14.472+0530 I CONTROL [initandlisten]
2017-12-10T08:12:14.472+0530 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-12-10T08:12:14.472+0530 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2017-12-10T08:12:14.472+0530 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2017-12-10T08:12:14.472+0530 I CONTROL [initandlisten]
2017-12-10T08:12:14.472+0530 I CONTROL [initandlisten]
2017-12-10T08:12:14.472+0530 I CONTROL [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
> show dbs;
admin 0.000GB
local 0.000GB
> use practice
switched to db practice
>
That's it.