window 环境安装MongoDB 步骤

jopen 8年前

1.首先到官网(http://www.mongodb.org/downloads )下载合适的安装包,目前的最新版本为2.6
安装包有zip和msi格式的,这里推荐下载zip格式的,msi的其实也就是进行了下解压缩而已,而且安装时不让选择安装路径,默认安装到C:\Program Files\MongoDB 2.6 Standard 目录,根据自己的系统选择32位或64位的

  下载完成后解压缩到D:\MongoDB目录


2.创建数据库目录D:\MongoDB\data,接下来打开命令行窗口,切换到D:\MongoDB\bin 目录执行如下命令:

其中 --dbpath是指定数据库存放目录,这里要注意有两个 "-"

mongod --dbpath D:\MongoDB\data

这是命令行窗口会打印一些启动信息,最后一行显示为如下信息时表示启动成功了 

2014-04-23T10:38:48.391+0800 [initandlisten] waiting for connections on port 27017

这里在浏览器输入http://localhost:27017/可以看到显示信息

It looks like you are trying to access MongoDB over HTTP on the native driver port.

到此mongodb算是安装完了

3.安装mongodb为windows服务

将mongodb安装为windows服务非常简单只需要在上面执行的命令行后添加 --install即可

mongod --dbpath D:\MongoDB\data --install

按照正常的剧情,应该服务就安装成功了,但是很不幸,出现下面提示

--install has to be used with --logpath

按照提示,我们需要指定log目录,所以我们创建log目录D:\MongoDB\logs 然后重新执行命令

mongod --dbpath D:\MongoDB\data --logpath=D:\MongoDB\logs\mongodb.log --logappend

但是提示还是没有指定日志路径,几经折腾发现这是2.6版本的一个bug,将会在下一个版本修复,然后我们有两个选择,一个选择是使用上一个版本2.4.9,另一个选择是先用2.4.9版本安装成功服务,然后在升级到2.6(肿么升级?直接用2.6版本替换掉对应2.4.9版本的文件),那我们还有其他的选择吗,答案当然是肯定的,使用sc命令创建服务,使用net start启动服务

sc create MongoDB binPath= "D:\MongoDB\bin\mongod.exe --service --dbpath D:\MongoDB\data --logpath=D:\MongoDB\logs\mongodb.log  --logappend"
net start MongoDB


创建配置文件 D:\MongoDB\etc\mongodb.conf

dbpath=D:\MongoDB\data #数据库路径  logpath=D:\MongoDB\logs\mongodb.log #日志输出文件路径  logappend=true #错误日志采用追加模式,配置这个选项后mongodb的日志会追加到现有的日志文件,而不是从新创建一个新文件  journal=true #启用日志文件,默认启用  quiet=true #这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false  port=27017 #端口号 默认为27017

配置文件和相关目录建好后使用如下方式启动MongoDB

  • 普通启动

    mongod --config D:\MongoDB\etc\mongodb.conf
  • 安装为Windows服务
    注:2.6版 这种方式在win7、win8 64位版无法安装成功,其他系统未测试

    mongod --config D:\MongoDB\etc\mongodb.conf --install
  • 使用SC安装为Windows服务

    sc create MongoDB binPath= "D:\MongoDB\bin\mongod.exe --service --config=D:\MongoDB\etc\mongodb.conf"

     

  • 若要删除windows服务

  • sc delete MongoDB

这里需要注意下当指定了日志文件后,无论使用配置文件指定还是在命令行指定,日志就都会输出到指定的日志文件去了,在命令行界面将看不到任何日志输出


来自: http://my.oschina.net/superkangning/blog/601488