一. 需求

不知道有多少人会像我一样,会把MongoDB用在客户端应用上,不过我感觉应该非常少。于是,我就希望能在客户机器上尽可能简单方便的安装MongoDB。所以以下是我的一些取舍:

1. 我只使用32位版本,因为32位的数据库能跑在64位的机器上,反之则不行。当然我知道2GB的限制

2. 不做安装程序,直接使用bat脚本,因为简单

3. 关于数据库安装路径,默认安装在D盘,如果用户没有D盘,则安装在C盘。 文件夹名字是MongoDB

4. 如果数据库已经安装过,则本程序给出提示

5.全部采用默认配置,单机,27017的默认端口,一切为了简单

二.bat程序脚本

基本步骤是: 确定安装位置,将Mongodb的可执行文件拷贝到对应的目录下(如果不存在则创建)

查看MongoDB服务是否已经存在,如果不存在,新建服务

结束

具体的bat代码可见下面的:

@echo off
title MongoDB数据库自动安装脚本 echo 请使用管理员权限执行本脚本 set disk=C if exist D:\nul set disk=D if not exist "%disk%:\MongoDB\" md %disk%:\MongoDB\
set name=bin if not exist "%disk%:\MongoDB\%name%\" md "%disk%:\MongoDB\%name%\" cd /d %~dp0 set STR1= %~dp0 set STR2=%STR1:~0,-1% echo %STR1% ==^> %STR2% xcopy %STR2% %disk%:\MongoDB\%name%\ /c/q/e/y if not exist "%disk%:\MongoDB\data\" md "%disk%:\MongoDB\data\" %~d0
%disk%:\MongoDB\%name%\mongod --install --serviceName MongoDB --serviceDisplayName MongoDB --logpath %disk%:\MongoDB.Log --dbpath %disk%:\MongoDB\data --directoryperdb @echo off
for /f "skip=3 tokens=4" %%i in ('sc query MongoDB') do set "zt=%%i" &goto :next :next
if /i "%zt%"=="RUNNING" (
echo 已经发现该服务在运行,已经安装成功 ) else (
echo 该服务现在处理停止状态,将进行启动
net start MongoDB
)
pause

三. 其他

1.  其实如果为了简单和小巧,那么下载的mongodb文件夹中,只有Mongod.exe是需要的,其他工具只在特殊情况下才用得着。为了减小体积,我只提供了mongod.exe。 如果有更新的版本,你只需要把bat文件拷贝到可执行文件夹中即可

2.  里面很多bat的语法和技巧,可以用在其他地方

3.  本文只是作者睡觉前想贡献社会随便写的,所以文章价值不高,这个我知道,所以你也不用说。我也不会放在首页的。

4.  其实完全可以判断32/64位系统,再分类安装的,但咱不是懒么

5.  它真的可以一键安装,我已经用在真实环境中了,很好用。如果你对路径设置不满意,可以选择修改bat。

6.  文件下载见附件。解压,然后用管理员模式运行bat即可。

MongoDB一键式安装工具的更多相关文章

  1. 一键式Spring集成工具 Spring Boot

    最近公司使用Spring boot进行开发,稍微了解一下,不过自我感觉把集中式配置applicate.properties搞明白,注解用过Spring MVC的boot绝对没问题的 比如拦截器:@As ...

  2. azure 云上MySQL最新版本 MySQL5.7.11 批量自动化一键式安装 (转)

    --背景云端 以前都喜欢了源码安装mysql,总觉得源码是高大上的事情,不过源码也需要时间,特别是make的时候,如果磁盘和cpu差的话,时间很长很长,在虚拟机上安装mysql尤其甚慢了. 现在业务发 ...

  3. Visual Studio 2012 Web一键式发布

    按照保哥的介绍,尝试“ Web一键式发布”,但总是出错,主要就是404错误,不知道是什么原因.默认的 Web一键式发布是在C:\inetpub\wwwroot目录下,难道是权限问题?折腾N久无果.好吧 ...

  4. Azure Site Recovery 通过一键式流程将虚拟机故障转移至 Azure虚拟机

    Ruturaj Dhekane 云 + Enterprise 项目经理  现在,AzureSite Recovery可以通过其"灾难恢复至 Azure"功能保护您的工作负荷,并 ...

  5. 无线网破解软件|一键式破解无线网|BT17软件包下载[笔记本+软件就行]

    从新版BT17发布到现在已经有一段时间,谢谢大家的一直来的关注.现在给大家讲解一下无线网破解问题,告诉 大家如何一键式破解WPA,WPA2,AES.Tkip等加密方式以及新版BT17软件包的下载地址. ...

  6. C# 制作Java +Mysql+Tomcat 环境安装程序,一键式安装

    原文:C# 制作Java +Mysql+Tomcat 环境安装程序,一键式安装 要求: JDK.Mysql.Tomcat三者制作成一个安装包, 不能单独安装,安装过程不显示三者的界面, 安装完成要配置 ...

  7. 如何:使用 Visual Studio 中的一键式发布来部署 Web 应用程序项目

    原文: 如何:使用 Visual Studio 中的一键式发布来部署 Web 应用程序项目 本主题介绍如何在以下产品中使用 一键式发布 发布(部署)Web 应用程序项目: Visual Studio ...

  8. AdPlayBanner:功能丰富、一键式使用的图片轮播插件

    AdPlayBanner:功能丰富.一键式使用的图片轮播插件 AdPlayBanner是一个Android平台基于ViewPager实现的轮播图插件,主要用以自动或者手动地播放轮播图,提供了Fresc ...

  9. 自动化运维(2)之一键式单实例安装MySQL

    ZMySQLAutoTools文档 目标:自动化构建部署MySQL数据库,一键式单实例mysql安装,备份,监控,主从集群部署等.以及jdk,tomcat,nginx等基础中间件的自动化部署安装及运维 ...

随机推荐

  1. I/O Techie 社区 --欢迎您的加入

    I/O Techie 社区 上线了,希望能聚集更多的软件开发者,提供给处于各个阶段的新鸟,老鸟更多的帮助和更好的服务. 链接:http://www.iotechie.info/ Google +:ht ...

  2. 用百度webuploader分片上传大文件

    一般在做文件上传的时候,都是通过客户端把要上传的文件上传到服务器,此时上传的文件都在服务器内存,如果上传的是视频等大文件,那么服务器内存就很紧张,而且一般我们都是用flash或者html5做异步上传, ...

  3. dp入门--poj 1163数塔

                                                                                                        ...

  4. perl学习之路1

    一切要从Hollo world开始 公司要用perl....啊, 不会只能自学了, 毕竟是公司啊, 不是学校...公司不学习就滚蛋了...惨惨惨 因为是学习嘛, 感觉开虚拟机比较麻烦所以直接用了个 瘟 ...

  5. Search a 2D Matrix

    Write an efficient algorithm that searches for a value in an m x n matrix. This matrix has the follo ...

  6. python之路 - 爬虫

    网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些不常使用的名字还有蚂蚁.自动索引.模拟程序或者蠕 ...

  7. bfs判断连通图(无向)

    在图论中,连通图基于连通的概念.在一个无向图 G 中,若从顶点vi到顶点vj有路径相连(当然从vj到vi也一定有路径),则称vi和vj是连通的.如果 G 是有向图,那么连接vi和vj的路径中所有的边都 ...

  8. C#简单的上位机制作之界面设计

    今天开始打算正式在博客园落户了,写点有用的吧, 一个简单的C#上位机,也就是串口调试助手废话不多说,新建windows应用程序 到这人一个工程就算是新建完成了,然后就是组件的添加了,我们需要在里面添加 ...

  9. HTML基础篇之视频音频

    <audio src="song.ogg" controls="controls"></audio> <!-- 兼容的音频格式og ...

  10. 重载与覆盖(java)

    一般来说,分为两种情况.一是在同一个类里面有两个或两个以上的同名的方法,这些方法的名字相同,但参数不同,这种情况中叫重载.当你调用方法时,会根据你传进去的参数的类型来决定调用哪个方法.二是一个类继承了 ...