views:

74

answers:

1

I'm trying to set up MongoDB 1.6.3 on my Windows XP SP 3 machine.

I've followed the instructions from the MongoDB wiki. I can see the Windows service installed but not started.

The path to the executable looks like this:

"C:\Tools\mongodb-win32-i386-1.6.3\bin\mongod" --bind_ip  127.0.0.1  --logpath  c:/mongodb/logs/mongodb.log  --logappend  --dbpath  "c:/mongodb/data"  --directoryperdb  MongoDB  --service  

When I try to start the service I get an error popup with the following message:

Error 1053: The service did not respond to the start or control request in a timely fashion.

Changed the dbpath and logpath to c:/data/db and c:/data/logs/mongodb.log respectively, but the result was the same.

I've checked to make sure that all directories and files do indeed exist - no worries there.

I just tried it again @ 1:18 PM EDT, got the same error, and saw this in the log file:

Sun Sep 26 13:18:15 dbexit: 

Sun Sep 26 13:18:15 shutdown: going to close listening sockets...
Sun Sep 26 13:18:15 shutdown: going to flush oplog...
Sun Sep 26 13:18:15 shutdown: going to close sockets...
Sun Sep 26 13:18:15 shutdown: waiting for fs preallocator...
Sun Sep 26 13:18:15 shutdown: closing all files...
Sun Sep 26 13:18:15     closeAllFiles() finished

Sun Sep 26 13:18:15 dbexit: really exiting now

So I believe the log file is set up properly and working correctly, but the info I get isn't helpful.

One more useful bit: I can run MongoDB without any issues if I open a command shell and start it up on the command line.

Any advice on where I went wrong or corrections would be greatly appreciated.

+1  A: 

If one of the directories in logpath or dbpath doesn't exist, it will fail to start. So make sure the paths point to existing directories.

If the paths do exist, check the log file for more information on what went wrong.

In response to your update

I have been able to reproduce the problem and noticed the error code 0xc0000417 when I tried to debug it with Visual Studio. This is a STATUS_INVALID_CRUNTIME_PARAMETER error, which means that an invalid parameter was passed to a C runtime function.

As you posted, the path to the executable is:

C:\Tools\mongodb-win32-i386-1.6.3\bin\mongod" --bind_ip 127.0.0.1 --logpath c:/mongodb/logs/mongodb.log --logappend --dbpath "c:/mongodb/data" --directoryperdbMongoDB--service

Now, when I tried to run the executable from a command prompt, it failed with the following message:

Invalid command: MongoDB

I have highlighted this faulty 'parameter' in the path above. It is the argument that is passed to the serviceName parameter, but the --serviceName directive itself was wrongly omitted. The correct path should be:

C:\Tools\mongodb-win32-i386-1.6.3\bin\mongod" --bind_ip 127.0.0.1 --logpath c:/mongodb/logs/mongodb.log --logappend --dbpath "c:/mongodb/data" --directoryperdb--serviceName MongoDB--service

Possible ways to fix it

You could edit the path to the executable in the registry, by changing the ImagePath in the following key:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MongoDB

Another option is to simply omit the serviceName parameter during installation, because MongoDB's service support is still flawed.

Niels van der Rest
@Niels - thank you, I'll try your advice when I return home tonight and see if that sorts it out. (I'm at work now, with no access to my home desktop.) If it works, I'll certainly accept your answer and vote it up. I appreciate you taking the time to follow up.
duffymo
@Niels - you were spot on. I modified the registry entry exactly as you said and all was well. The service started right up, and MongoVUE connected right up. Thank you for your help and expertise.
duffymo
@duffymo: Glad I could help! It's been instructive for the both of us.
Niels van der Rest