快速搭建属于自己的mongodb数据库
前言
MongoDB 是一个基于分布式文件存储的数据库。由C++
语言编写,支持Windows,Linux,OSX,Solaris等平台,默认端口为27017
,是一个效率非常高的nosql
数据库。
我的测试环境:window10 64位
我的安装路径:D:\mongodb
我学习mongodb的笔记本:MongoDB
配置mongodb我也遇到了两个关键性的问题,记录这篇博客希望搭建mongodb的同行者,可以顺利完成配置。
安装
下载地址:http://www.mongodb.org/downloads
选择下载版本:
我下载的是最新版本的zip格式。
需要注意的是:
1、从mongodb2.2版本开始,mongodb不在支持windowXp
参考:心知博客
PLATFORM SUPPORT
Starting in version 2.2, MongoDB does not support Windows XP. Please use a more recent version of Windows to use more recent releases of MongoDB.
2、如果运行系统为windows server 2008 R2 或者 window 7,需要进入微软官网下载补丁
IMPORTANT
If you are running any edition of Windows Server R2 or Windows , please install a hotfix to resolve an issue with memory mapped files on Windows.
并且这里需要特别注意:
下载完成后会得到一个exe
文件,但是这里并不能直接对这个文件进行安装,需要先将其解压,解压后得到 Windows6.1-KB2731284-v3-x64.msu
文件,这时候才可以进行安装,之后重启即可
3、64位的MongoDB将不能在32位的windows上运行启动
配置
1、创建一个用于存放mongodb数据的目录,
这里我创建在D:\mongodb\data\db,打开cmd(这里我用的Git Bash),进入到mongodb的bin目录,运行下面命令
mongod --dbpath="D:\mongodb\data\db"
然后出现了我遇到的第一个问题,
--29T22::02.229+ I CONTROL [initandlisten] MongoDB starting : pid= port= dbpath=C:\Program Files\MongoDB\db -bit host=Lenovo
--29T22::02.234+ I CONTROL [initandlisten] targetMinOS: Windows /Windows Server R2
--29T22::02.235+ I CONTROL [initandlisten] db version v3.4.1
--29T22::02.237+ I CONTROL [initandlisten] git version: 5e103c4f5583e2566a45d740225dc250baacfbd7
--29T22::02.238+ I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.1t-fips May
--29T22::02.240+ I CONTROL [initandlisten] allocator: tcmalloc
--29T22::02.241+ I CONTROL [initandlisten] modules: none
--29T22::02.241+ I CONTROL [initandlisten] build environment:
--29T22::02.243+ I CONTROL [initandlisten] distmod: 2008plus-ssl
--29T22::02.244+ I CONTROL [initandlisten] distarch: x86_64
--29T22::02.245+ I CONTROL [initandlisten] target_arch: x86_64
--29T22::02.246+ I CONTROL [initandlisten] options: { storage: { dbPath: "C:\Program Files\MongoDB\db" } }
--29T22::02.249+ I STORAGE [initandlisten] exception in initAndListen: Attempted to create a lock file on a read-only directory: C:\Program Files\MongoDB\db, terminating
--29T22::02.251+ I NETWORK [initandlisten] shutdown: going to close listening sockets...
--29T22::02.255+ I NETWORK [initandlisten] shutdown: going to flush diaglog...
--29T22::02.256+ I CONTROL [initandlisten] now exiting
--29T22::02.257+ I CONTROL [initandlisten] shutting down with code:
最后出现shutting down with code :100,
在心知博客我找到了答案,原因在于:我们进入的命令提示符只是普通模式,所以出现无法创建文件的问题,切换到管理员模式,重新运行命令:
然后就可以正常启动。
2、我把mongo命令添加到path环境变量中,
这样我就不需要每次都进入到mongodb下的bin中执行mongo命令了。
3、把mongodb设置为windows服务,
采用管理员:命令提示符,切换到安装mongodb目录的bin
目录,运行下面命令,把MongoDB
设置为Windows
服务:
mongod --dbpath="D:\mongodb\data\db" --logpath="D:\mongodb\data\log" --logappend --directoryperdb --serviceName "MongoDB" --serviceDisplayName "MongoDB" --install
参数解读:
--dbpath="D:\mongodb\data\db" mongodb的数据目录
--logpath="D:\mongodb\data\log" --logappend 指定日志文件。并且日志是以追加的方式输出的
--serviceName "MongoDB" --serviceDisplayName "MongoDB" windows服务器名称和显示名称为MongoDB
--directoryperdb 表示每个db都会新建一个目录
--install 进行安装,与之相对的是--remove
启动停止mongodb服务的命令
启动MongoDB:net start MongoDB
停止MongoDB:net stop MongoDB
然后我遇到了第二个问题,服务器安装成功之后,进行启动,发现无法启动,查看log日志文件,有这样的信息:
--29T23::23.705+ I CONTROL [initandlisten] options: { service: true, storage: { dbPath: "D:\mongodb\data\db", directoryPerDB: true }, systemLog: { destination: "file", logAppend: true, path: "D:\mongodb\data\log\mongodb.log" } }
--29T23::23.706+ I - [initandlisten] Detected data files in C:\Program Files\MongoDB\db created by the 'wiredTiger' storage engine, so setting the active storage engine to 'wiredTiger'.
--29T23::23.707+ I STORAGE [initandlisten] exception in initAndListen: Requested option conflicts with current storage engine option for directoryPerDB; you requested true but the current server storage is already set to false and cannot be changed, terminating
--29T23::23.707+ I NETWORK [serviceStopWorker] shutdown: going to close listening sockets...
--29T23::23.707+ I NETWORK [serviceStopWorker] shutdown: going to flush diaglog...
--29T23::23.707+ I CONTROL [serviceStopWorker] now exiting
--29T23::23.707+ I CONTROL [serviceStopWorker] shutting down with code:
大致意思就是说存储引擎冲突,(之前在命令行启动过mongodb服务,然后就在数据目录生成了数据文件)
这个时候我们可以到数据目录中找到storage.bson这个文件,删除即可。
我们可以通过添加到环境变量中的mongo命令来启动数据库,这样我们就可以通过命令行来执行一些操作了
到这里我们已经能正常使用mongodb来执行工作了,我遇到的两个问题在心知博客中也找到了答案。
后记
我的mongodb的笔记本主要是记录mongo文档的学习情况,会不断更新。
博客会分享一些开发中的心得以及学习阶段遇到的问题最后得以解决,都会坚持下去,也很开心每天都能看到博客园里有很多人分享知识。
快速搭建属于自己的mongodb数据库的更多相关文章
- 快速搭建属于自己的数据库——mongodb
为了真实模拟一个项目上线,拥有前端后端数据库都具备的功能,我选择了mongodb作为项目的数据库支持,这里分享一些mongodb的经验心得和血的教训. mongoddb安装 在本地安装 直接通过官网下 ...
- 一文教您如何通过 Docker 快速搭建各种测试环境(Mysql, Redis, Elasticsearch, MongoDB) | 建议收藏
欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...
- EOS主网搭建教程--&&--搭建节点--&&--搭建mongodb数据库
EOS主网搭建教程: 1.git clone https://github.com/EOS-Mainnet/eos.git --recursive 2.cd eos 3.git tag (查看有哪些分 ...
- Mongodb数据库学习系列————(一)Mongodb数据库主从复制的搭建
Mongodb数据库主从复制的搭建 Writeby:lipeng date:2014-10-22 最近项目上用到了位置查询,在网上 ...
- SSM(SpringMVC+Spring+MyBatis)三大框架使用Maven快速搭建整合(实现数据库数据到页面进行展示)
本文介绍使用SpringMVC+Spring+MyBatis三大框架使用Maven快速搭建一个demo,实现数据从数据库中查询返回到页面进行展示的过程. 技术选型:SpringMVC+Spring+M ...
- 数据库中间件DBLE学习(一) 基础介绍和快速搭建
dble基本架构简介 dble是上海爱可生信息技术股份有限公司基于mysql的高可用扩展性的分布式中间件.江湖人送外号MyCat Plus.开源地址 我们首先来看架构图,外部应用通过NIO/AIO进行 ...
- 使用免费 mongodb数据库 + 免费node.js服务器搭建小程序接口
由于微信的小程序只支持不带端口的域名接口,不支持IP地址和接口,所以我们需要映射到80端口并绑定备案过的域名才能被微信小程序访问到.简单点就是接口需要 https 协议才行,找了许久的免费的数据库与n ...
- 2. node接口搭建--连接MongoDB数据库 (参考https://blog.csdn.net/ncepu_Chen/article/details/98725104#_337)
1.使用mongoose连接MongoDB数据库 npm install mongoose 2.新建文件夹config存放数据库地址 3.安装MongoDB
- 基于C#的MongoDB数据库开发应用(1)--MongoDB数据库的基础知识和使用
在花了不少时间研究学习了MongoDB数据库的相关知识,以及利用C#对MongoDB数据库的封装.测试应用后,决定花一些时间来总结一下最近的研究心得,把这个数据库的应用单独作为一个系列来介绍,希望从各 ...
随机推荐
- (z转)基于CPU的Bank BRDF经验模型,实现各向异性光照效果!
摘抄“GPU Programming And Cg Language Primer 1rd Edition” 中文 名“GPU编程与CG语言之阳春白雪下里巴人” BRDF 光照模型 10.2.1 什么 ...
- zabbix的日常监控-自动发现端口并监测(服务器开启的所有端口或监控指定端口)(十三)
动批量检查agent开放的端口 注:此方法给监控磁盘IO(即十二)篇过程一样: 注释:如果服务器上的应用都是固定的,不会随机产生的都可以使用自动发现端口来监控: 如果服务器会随机出现端口且每次启动程 ...
- playfair
又是一道实验吧的题,哈哈,我比较弱. 因为题目写了play我首先想到的是playfair,好,下面先看下百科 好了,已知了密钥: 所以有: s n f m th b g o ui c j p vy d ...
- libcurl-7.54.1附加zlib1.2.11的编译
手上有个小程序需要通过HTTP协议通信,选择了出名的libcurl作为支持库.由于网上的教程多是命令行编译,本人记性不好,比较讨厌记住一堆命令,因此折腾了一天通过VS对libcurl和zlib进行了编 ...
- angularjs-$location
$location服务分析浏览器地址栏中的URL(基于window.location),让我们可以在应用中较为方便地使用URL里面的内容.在地址栏中更改URL,会响应到$location服务中,而在$ ...
- python第十四课--排序及自定义函数
1.排序 特点: 1).升序:从小到大 2).降序:从大到小 课堂实现选择排序:参看老郭选择排序.py文件 2.函数:(方法/method) 自定义函数: 概念:它表示一段作用范围(作用域),当中封装 ...
- BZOJ2435:[NOI2011]道路修建 (差分)
Description 在 W 星球上有 n 个国家.为了各自国家的经济发展,他们决定在各个国家 之间建设双向道路使得国家之间连通.但是每个国家的国王都很吝啬,他们只愿 意修建恰好 n – 1条双向道 ...
- 20145203盖泽双 《Java程序设计》第7周学习总结
20145203盖泽双 <Java程序设计>第7周学习总结 教材学习内容总结 1.如果使用JDK8的话,可以使用Lambda特性去除重复的信息. 2.在只有Lambda表达式的情况下,参数 ...
- vue打包以后,除了首页意外,其余页面是空白
针对vue项目打包以后,除了首页意外,其余页面是空白的,需要在服务端进行配置. 原因是router中,mode是history引起的 如果是nginx,改成如下: location / { root ...
- C++:引用的简单理解
前言:引用是C++一个很重要的特性,最近看了很多有关引用的资料和博客,故在此对引用的相关知识进行总结 一.什么是引用 引用,顾名思义是某一个变量或对象的别名,对引用的操作与对其所绑定的变量或对象的操作 ...