Reputation: 2020
I'm playing with meteor, Installed it on Ubuntu 14.10 & followed the todos tutorial. The Meteor run log:
$ meteor run
[[[[[ ~/bckd/homedir/learn/meteor/mycoolapp ]]]]]
=> Started proxy.
=> Started MongoDB.
=> Started your app.
=> App running at: http://localhost:3000/
When I try to connect to mongo via another terminal, I get:
$ meteor mongo
mongo: Meteor isn't running a local MongoDB server.
This command only works while Meteor is running your application locally. Start your
application first. (This error will also occur if you asked Meteor to use a different MongoDB
server with $MONGO_URL when you ran your application.)
If you're trying to connect to the database of an app you deployed with `meteor deploy`,
specify your site's name with this command.
Trying to work around this problem I looked at the mongo
command, and soon enough I figured I can connect using:
$ mongo localhost:3001
So great, that's working and it seems that I am able to use that for the time being.
But... why is the official way: meteor mongo
not working in my setup, and can I do anything to fix it?
After creating another account on my ubuntu, logging in and creating a new app, I run it and managed to connect to the mongo instance as intended with the meteor mongo
command (without sudo). I thought it could be a result of a difference in my environment variables so I compared the two (dumping both environments with the env
command. There were some extra bash variables in my primary account so one by one I've unset them until I reached two identical environments (with the exceptions of home directory values, user names, auto-generated values for gnome session tokens and such). Despite those changes, the problem consists. Another wild guess of mine was that the ~/.meteor
folder has gone evil on me. So, I've removed it and reinstalled meteor. That didn't fix it either. Whatever the problem is, it's pretty stubborn.
Upvotes: 4
Views: 4686
Reputation: 886
check if there is a running mongo process, and kill it manually:
ps -aux | grep mongo
sudo kill [pid]
..then restart your meteor app.
--> I think this specific situation exists only when starting meteor on a custom port (not tested, but pretty obvious)
Upvotes: 0
Reputation: 15912
This worked for me with the same problem.
I had two terminals open: one running with meteor command, the other terminal I tried meteor mongo and received the very same message as stated in the question.
mongo: Meteor isn't running a local MongoDB server.
This command only works while Meteor is running your application locally. Start your application first with 'meteor' and then run this command in a new terminal. This error will also occur if you asked Meteor to use a different MongoDB server with $MONGO_URL when you ran your application.
If you're trying to connect to the database of an app you deployed with 'meteor deploy', specify your site's name as an argument to this command.
I tried the sudo command, which did not work as well.
Here is what worked for me.
Perhaps the something in Meteor needs to reboot which does not occur without shutting down meteor server first?
Upvotes: 0
Reputation: 549
In my case(Windows 10),I had set MONGO_URL='remote url'. In this case when you type 'meteor mongo' meteor will try to connect to the local mongodb server,but we are pointing to remote mogodb.
To point to local mongodb:
1) befor starting the app type 'set MONOGO_URL=' command in terminal.
2) now start the meteor app
3) now open a new terminal and try 'meteor mongo'
Upvotes: 0
Reputation: 91
Looks like it's your environment variable problem.
export MONGO_URL=''
meteor mongo
Upvotes: 2
Reputation: 3816
sudo meteor mongo
- maybe the Meteor/Node process is running as root.Upvotes: 4
Reputation: 35
Did you create the meteor app initially : meteor create
I was having same issue on Ubuntu and found that i missed the create part as I copied the code from windows machine.
Upvotes: 1