详细图解mongodb 3.4.1 win7x64安装

原文:http://www.cnblogs.com/yucongblog/p/6895983.html

 

详细图解,记录 win7 64 安装mongo数据库的过程。安装的版本是 MongoDB-win32-x86_64-2008plus-ssl-3.4.1-signed。

我下载的源文件:mongodb-win32-x86_64-2008plus-ssl-3.4.1-signed
我的系统:win 7 64 bit 8g内存
为了方便下载,我把我当时下载的这个包,放在某度的云盘上。
链接:http://pan.baidu.com/s/1o80MF1o 密码:fi3k

 

下载和安装,图有点多,不怕啰嗦,就怕不够。

注意这个安装的位置,下面要用呢。

图上的说的是刚刚安装完的时候的样子,打错字啦。

 

1. 创建几个文件夹具体如下:数据库路径(data目录)、日志路径(logs目录)和日志文件(mongo.log文件)

注意文件夹的前后对比:

 

2. 创建配置文件mongo.conf,文件内容如下:

  1. #数据库路径  
  2. dbpath=D:\Mongo\data  
  3. #日志输出文件路径  
  4. logpath=D:\Mongo\logs\mongo.log  
  5. #错误日志采用追加模式  
  6. logappend=true  
  7. #启用日志文件,默认启用  
  8. journal=true  
  9. #这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false  
  10. quiet=true  
  11. #端口号 默认为27017  
  12. port=27017   


3. 启动MongoDB服务

mongod --config "D:\Mongo\mongo.conf" 
这个是使用自己刚刚在上面配置的配置文件来启动服务的。注意修改成自己的目录位置。额,这个当然是在cmd命令行窗口的对应安装bin目录下拉

这个是在cmd命令行下执行这个命令的,执行完之后,命令行,似乎没什么太大的变动,然后你继续执行下面的步骤。

这个步骤的截图,在下面的第四步里面是可以看到这个步骤的命令执行效果的。可以先看下下面的那个步骤图。
命令执行后,浏览器中输入http://127.0.0.1:27017看到如下界面即说明启动成功

有的可能在这里失败了,也许页面并没有这么显示,但是不要紧,你看看刚刚的那个data目录下有没有文件生成,还有log文件有没有内容。如果有,那么就是服务启动了,

还可以再,任务管理器里面,看看有没有这么个mongo的服务存在。都是可以判断这个服务启动OK没有。

 

4. 创建并启动MongoDB服务
如果每次都如上操作,岂不是相当麻烦,按照如下命令来创建并启动MongoDB服务,就可以通过windows服务来管理MongoDB的启动和关闭了

mongod --config "D:\Mongo\mongo.conf"  --install --serviceName "MongoDB"
net start MongoDB

上面是2行的命令

 

这个服务的启动,是有点特殊的。是不需要登录验证的,就是没有密码也可以登录。

具体看下图。这个是用mongoVUE登录看到的效果

等一下,图上的描述不是很正确,应该是我就创建了一个数据库叫lxkdb,上面的另外的2个一个叫admin,和local都是安装完mongo db之后,自动生成的数据库。

也可以看到上面并不存在一个叫test的数据库,所以说,系统默认存在一个叫test数据库的说法是错误的。下面还会解释这个问题。

这句话是后来更新的:上面说这个test不存在,也不完全对,具体看最下面的解释吧。先不在意这个

其中admin这个数据库存放的是用户信息。

关于这个用户信息,不是我们想的那么简单的只是存个用户名和密码就完了。

MongoDB 缺省是没有设置权限的,也就是说,没有设置访问权限。上面的启动方式就是没有设置权限的启动,所以,登录数据库,是不需要验证用户名和密码的。
这就意味着只要知道 MongoDB 服务器的端口,任何能访问到这台服务器的人都可以查询和操作 MongoDB 数据库的内容。
也就是像我上面测试的那样,啥也不输入,都可以直接测试连接OK。


所以加上 --auth 这样以后就可以使用用户名和密码后才能进行MongoDB的相关操作
 MongoDB 的用户和权限,这个有点复杂,先有个印象。
数据库用户有两种,一种是管理员,用来管理用户,一种是普通用户,用来访问数据。

(后面我会继续说说这个两种权限的数据库用户是到底怎么在用的)

 

注意:

下面这个带权限控制的安装服务,你呢,暂时先别整,这个权限你要是开了的话,必须先在数据库里面建个账户和密码。

这个就像你在把锁锁住之前得先准备好钥匙的道理似的。所以,在你不了解这个权限的情况下,暂时还不是先不加这个权限控制。

等看了怎么新建管理用户和一般数据库用户之后再打开这个权限。后面我再好好总结一下。

 

关于--安全和认证--的解释:

 

每个MongoDB实例中的数据库都可以有许多用户。如果开启了安全性检查,则只有数据库认证用户才能执行读或者写操作。

在认证的上下文中,MongoDB会将普通的数据作为admin数据库处理。admin数据库中的用户被视为超级用户(即管理员)。

在认证之后,管理员可以读写所有数据库,执行特定的管理命令,如listDatabases和shutdown。

在开启安全检查之前,一定要至少有一个管理员账号。

 

后面跟链接:详细图解记录 win7 64 mongodb 新建管理者账户和一般账户的例子

 

(这个你刚刚开始学习的时候,可以先不开权限验证,那么在登录数据库的时候,就不需要账号和密码,操作也简单。)

(以下操作是,打开权限认证,使用数据库之前,必须先验证一下,才可以继续,Authentication,也就是经常会看到这个单词。)

然后,把这个服务给卸载了(下面有讲解怎么卸载这个服务,我这就不重复啦),然后再次注册个服务的话,命令多添加个 --auth。

mongod --config "D:\Mongo\mongo.conf"  --auth --install --serviceName "MongoDB"
net start MongoDB

也可以在配置文件里面再加一个auth=true的配置。效果差不多吧。

然后就不能没有密码直接登录啦。

 

注意啦:这个mongoVUE的版本太低了,导致即使你账号密码OK,还是会出现异常的情况,在我经历了多次卸载重装服务之后,换了个mongo数据库工具,特么的可算是OK了。

那就暂时先不管这个工具的报错了吧。下一篇我示范如何使用这个数据库,在这知道这个权限问题,就好。

而且这个权限问题,很是麻烦。

刚刚安装好的mongo服务有个默认的数据库,test,user 的name和pwd都是test。如下图。(这句话,在下面被推翻,理论不成立。)

点test,测试一下,连接是不是OK的。然后就有上图了

本来我是看别人的文章上说,mongo刚刚安装完毕的时候,是有个test数据库,然后用户名和密码都是test,然后我用那个mongoVUE这个可视化工具测试了下。
发现测试连接是OK的,也就是如图上所示。然后我就 以为真的是有这个数据库存在的,但是后来又想了想,不对呀,好像不是这样的。
后面我反复测试那个权限问题的时候,发现,这个mongoVUE,即使你不填写用户名和密码,随便填写个数据库名称,然后测试连接,也是可以测试OK的。

但是我用另一个新发现的mongo数据库工具,就没有这个问题。

而且也用这个mongo数据库工具,可以看到那个 --auth的效用还是存在的,就是这个时候,必须得有账户名和密码才可以使用数据库。

我这个暂时还没测试,无权限管控的启动服务,然后用这个登录数据库看看啥情况。
有空了,或者,看官你测试一下呗。就是刚刚没加--auth启动服务的时候,是不是不用账户密码,就可使用这个工具连上数据库。

这个连接数据库的工具的网址,算是个开源的项目吧。

Robomongo 0.9.0
http://blog.robomongo.org/robomongo-0-9-0-final/
我下载的到某度云盘的分享
链接:http://pan.baidu.com/s/1bp8ALDP 密码:iaie

两个工具比较之后,可以发现这个mongoVUE的版本确实太低了。下一篇 有这个mongoVUE的版本图。

 

如果需要卸载MongoDB服务,则还是在bin目录下,
mongod.exe --remove --serviceName "MongoDB"

然后这个服务就删除了,然后你再在那个任务管理器里面就看不到这个服务啦。说明他就被干掉了。删除啦。

 

上面介绍的是从安装mongo服务到卸载mongo服务,都是有图有真相。

下面介绍一些其他的东西。

 

以后要是想停止这个服务,你就右键,启动任务管理器,选上面的服务,然后右下角的“服务(s)...”,然后找到那个名为MongoDB的系统服务,关掉就可以啦。



至此,所有操作已完成,服务已成功安装。
我就暂时先把这个mongo的数据库在我的电脑上装好,具体怎么使用。以后再说。

 

这个 时候,再看刚刚我们新建的data文件夹和mongo.log两个文件的时候就发现里面有数据啦,也可以说明,这一路的操作都很OK的。

额,呵呵,就是我这图上传的有点多。。。

 

最后,每次要在命令行使用mongo命令,都得进入到对应的bin目录下,这样很是麻烦,何不配置个系统环境变量,方便直接使用,这个mongo命令

 

这样就可以直接在cmd命令行,不需要进行目录切换,就可以直接使用啦

 

关于数据库里面的test数据库存在与否的解释:

 

下一篇具体讲解怎么新建普通的数据库用户和数据库管理者用户。

也就是上面你看到两个数据库是以及登录数据库的账号和密码是怎么设置的。

(这个我已经把链接添加在文章内部了。可以点击链接查看。)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/541328.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java calendar_Java Calendar complete()方法与示例

java calendarCalendar类的complete()方法 (Calendar Class complete() method) complete() method is available in java.util package. complete()方法在java.util包中可用。 complete() method is used to fills in any non-set fields in the calendar fields. complete()方…

LXD 2.0 系列(十二):调试,及给 LXD 做贡献

介绍 终于要结束了!这个大约一年前开始的这系列文章的最后一篇博文。 LXD 入门安装与配置你的第一个 LXD 容器资源控制镜像管理远程主机及容器迁移LXD 中的 DockerLXD 中的 LXD实时迁移LXD 和 JujuLXD 和 OpenStack调试,及给 LXD 做贡献如果你从一开始就…

linux用ping命令测试网速,linux下面使用命令测试网速

大家都知道在speedtest是市面上最准确最全面的测速工具,但在linux命令行不能直接使用,所以我们就借助脚本调用speedtest的接口来利用他测试网速。1.下载speedtest-cli脚本:下载地址:https://raw.githubusercontent.com/sivel/spee…

Java ArrayList isEmpty()方法与示例

ArrayList类isEmpty()方法 (ArrayList Class isEmpty() method) isEmpty() method is available in java.util package. isEmpty()方法在java.util包中可用。 isEmpty() method is used to check whether this Arraylist is "empty" or "not empty". isEmp…

linux家用系统版本,查看linux系统版本

篇一:linux下如何查看系统和内核版本linux下如何查看系统和内核版本 1. 查看内核版本命令:1) [rootq1test01 ~]# cat /proc/versionLinux version 2.6.9-22.ELsmp (bhcompilecrowe.devel.redhat.com) (gcc version 3.4.4 20050721 (Red Hat 3.4.4-2)) #1…

python中locked_Python锁类| 带示例的locked()方法

python中lockedPython Lock.locked()方法 (Python Lock.locked() Method) locked() is an inbuilt method of the Lock class of the threading module in Python. Locked()是Python中线程模块的Lock类的内置方法。 This method returns True if the lock is acquired by a th…

rocksdb ubuntu c++源码编译测试

2019独角兽企业重金招聘Python工程师标准>>> 环境: ubuntu16.4 需要安装 snappy gflage bz2 zstd 以及g 其中zstd是facebook开放源代码里的压缩的库 git clone https://github.com/facebook/rocksdb.git cd rocksdb make static_lib 成功生成 librocksd…

vs生成linux服务器程序,从Visual Studio到Linux上调试C++代码

从Visual Studio到Linux上调试C代码04/30/20155 分钟可看完本文内容[原文发表时间] 2015/4/29 10:00 PM正如您可能已经听说的那样,Visual Studio 2015新推出了对Android开发的GDB支持。有趣的是,因为这项功能依赖GDB调试,我们完全可能稍加改动…

java clock计时_Java Clock类| 实例的Instant()方法

java clock计时Clock Class Instant()方法 (Clock Class instant() method) instant() method is available in java.time package. Instant()方法在java.time包中可用。 instant() method is used to get the current instant that is used with this Clock. Instant()方法用于…

使用国内DOCKER镜像源

在国内,通过Docker的pull和push命令访问hub.docker时,网络十分慢,而且会出现各种各样的网络连接问题。因此这里介绍下如何使用国内的镜像源,这里以DaoCloud为例。注册DaoCloud用户;注册完成后,会进入dashboard页面&…

linux命令top查看进程,linux 查看进程的命令(top)

标签:top操作系统支持多任务并不是计算机同时做很多事情,而是快速的轮换着执行这些任务。linux安排不同的程序等待使用CPU。进程的工作方式:当系统启动的时候,内核先把自己的程序初始化为进程,然后运行一个init的程序&…

stl vector 函数_vector :: back()函数以及C ++ STL中的示例

stl vector 函数C vector :: back()函数 (C vector::back() function) vector::back() is a library function of "vector" header, it is used to access the last element from the vector, it returns a reference to the last element of the vector. vector ::…

linux udp 端口 抓包,tcpdump之UDP抓包

摘要使用tcpdump抓UDP包,过滤过滤IP和port,并且自动拆分片段。安装tcpdumpyum install -y tcpdump使用方法tcpdump -i bond0 udp port xxxx and host xxx.x.xx.xxx -s0 -G 600 -w %Y_%m%d_%H%M_%S.pcap参数说明-i 指定监听的网卡udp 监听UDP协议port 指定…

Vue版本过渡变化

到了2.0以后&#xff0c;有哪些变化&#xff1a; 在每个组件模板&#xff0c;不在支持片段代码之前: <template id”aaa”><h3>我是组件</h3><strong>我是加粗标签</strong></template> 现在: 必须有根元素&#xff0c;包裹住所有的代码 …

NABARD的完整形式是什么?

NABARD&#xff1a;国家农业和农村发展银行 (NABARD: National Bank for Agriculture and Rural Development) NABARD is an abbreviation of National Bank for Agriculture and Rural Development. NABARD是国家农业和农村发展银行的缩写 。 On 12 July 1982, it was establ…

基于opencv+Dlib的面部合成(Face Morph)

引自&#xff1a;http://blog.csdn.net/wangxing233/article/details/51549880 零、前言 前段时间看到文章【1】和【2】&#xff0c;大概了解了面部合成的基本原理。这两天空下来了&#xff0c;于是参考【3】自己实现了下。虽然【1】和【2】已经讲的很清楚了&#xff0c;但是有…

大脑应对危机的模式_危机的完整形式是什么?

大脑应对危机的模式危机&#xff1a;印度信用评级信息服务有限公司 (CRISIL: Credit Rating Information Services of India Limited) CRISIL is an abbreviation of Credit Rating Information Services of India Limited. It is an international analytic company which off…

linux网络延迟命令,2. Linux使用ping命令查看网络延迟

ping命令持续发送少量互联网流量到远程地址并报告收到回应的总时间。如果流量因为网络故障或者错误配置而被丢弃&#xff0c;它也会报告。ping命令是最基本和初级的诊断网络问题的工具之一。ping常被用来测试网络延迟&#xff0c;但是有时ping的延迟并不是网络引起的&#xff0…

一、简单工厂模式

# public class Operation //基类{private double _numberA 0;private double _numberB 0;public double NumberA{get{ return _numberA; }set{_numberA value;}}public double NumberB{get{ return _numberB; }set{_numberB value;}}public virtual double GetResult(){d…

软件生命周期模型及其类型

A life cycle model is also known as a process model. As the name suggests, the software life cycle model (or the software process model) gives us a pictorial representation of the entire software development process. 生命周期模型也称为过程模型 。 顾名思义&…