MongoDB作为一个基于分布式文件存储的数据库,近两年大受追捧。数据灵活的存取方式和高效的处理使得它广泛用于互联网应用。
最近本人开始在Windows 32位平台下研究MongoDB的使用,为了方便,本人更喜欢将其安装为Windows的系统服务。这样就不用每次开一个mongod的主流程序了。
但是在网上搜索的命令有时候并没有让服务成功注册,出现若干问题。接下来我将写出我所遇到的问题和解决办法。
首先从MongoDB官方下载最新的发行版本:http://www.mongodb.org/downloads
目前我所使用的是2.4.8版。
安装很简单,解压出来就可以了。我把它放在了D盘下,以下是目录结构:
1 C:UsersAdministrator>D: 2 3 D:>CD D:Program Filesmongodbin 4 5 D:Program Filesmongodbin>dir 6 驱动器 D 中的卷是 SoftWare 7 卷的序列号是 306D-3BAC 8 9 D:Program Filesmongodbin 的目录 10 11 2013/11/21 15:23 <DIR> . 12 2013/11/21 15:23 <DIR> .. 13 2013/10/31 16:17 11,273,728 bsondump.exe 14 2013/10/31 14:32 6,379,520 mongo.exe 15 2013/10/31 14:43 11,329,536 mongod.exe 16 2013/10/31 14:43 91,720,704 mongod.pdb 17 2013/10/31 15:00 11,308,544 mongodump.exe 18 2013/10/31 15:19 11,276,288 mongoexport.exe 19 2013/10/31 16:07 11,289,600 mongofiles.exe 20 2013/10/31 15:28 11,294,208 mongoimport.exe 21 2013/10/31 15:57 11,272,704 mongooplog.exe 22 2013/10/31 16:26 11,284,480 mongoperf.exe 23 2013/10/31 15:09 11,299,328 mongorestore.exe 24 2013/10/31 14:50 8,848,896 mongos.exe 25 2013/10/31 14:50 70,765,568 mongos.pdb 26 2013/10/31 15:38 11,304,960 mongostat.exe 27 2013/10/31 15:47 11,276,288 mongotop.exe 28 15 个文件 301,924,352 字节 29 2 个目录 48,694,886,400 可用字节
接下来就要安装MongoDB服务了,不过此时要注意两点:
1.保持命令行当前目录不变,即仍停留在D:Program Filesmongodbin 目录。任何更改到其他目录后使用绝对定位来操作此目录都会导致服务安装失败
注:什么意思呢?就是说保持当前状态就行了。假设你重新打开了一个cmd,起始目录变成了
1 C:UsersAdministrator>
这时候你即便使用
1 C:UsersAdministrator>D:Program Filesmongodbinmongodb.exe .......
这样的方式来注册服务,仍然会注册失败。
2.事先创建一个目录用来保存数据库文件。如果不创建这个目录,注册服务时会在表象上看似已经注册成功。但启动服务后会发现mongod.exe进程会反复建立、销毁、建立、销毁。跟着服务状态也会变成“已启动”、“已停止”、“已启动”、“已停止”,客户端根本无法连接到数据库。
这里我使用C盘下的MongoDBData目录作为数据文件存放目录,于是建立目录:
1 D:Program Filesmongodbin>mkdir c:MongoDBData
好了,到这里准备工作就做好了,下面就可以安装服务了:
1 D:Program Filesmongodbin>mongod --install --serviceName MongoDB --serviceDisplayName MongoDB --logpath c:MongoDB.Log --dbpath c:MongoDB --directoryperdb
这里简单介绍一下使用的参数及其含义:
--install:安装MongoDB服务
--serviceName:安装Windows服务时使用的服务名
--serviceDisplayName:在Windows服务管理器中显示的服务名,如下所示:
--logpath:MongoDB日志输出文件名称。虽说该参数直译是“日志路径”,其实要指定的是一个具体的完整文件名。这里我使用的是C盘根目录下的MongoDB.Log文件。该文件不用事先创建,直接指定就是了。
--dbpath:指定MongoDB数据存放的路径。这个就是最关键的参数了,不仅该目录要存在,并且最好不要以“”结尾。
--directoryperdb:这个参数很好理解,让MongoDB按照数据库的不同,针对每一个数据库都建立一个目录,所谓的“目录每数据库”
好了,执行了上面的命令后,服务就可以成功注册了。如果你使用的操作系统是Windows Vista或者Windows 7,那么你要特别注意它的UAC机制了,必须以管理员权限打开cmd,然后注册服务才能成功注册。
打开服务管理器,启动MongoDB服务,发现该服务可以稳定持续运行。恭喜你,成功了!
原文地址:http://blog.csdn.net/chaijunkun/article/details/7227967