您的位置:首页 > 数据库 > Mongodb

详细图解mongodb下载、安装、配置与使用

2017-11-08 14:03 681 查看
python使用数据库MongoDB

MongoDB下载地址:

win7 32位下载地址:https://www.mongodb.org/dl/win32/i386

 win7 32位安装包:百度云:链接:http://pan.baidu.com/s/1ci44EU 密码:43gx

MongoDB的配置和安装:



转载:http://blog.csdn.net/boby16/article/details/51221474

详细图解,记录 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,文件内容如下:

 

[html] view plain copy
 
 





#数据库路径  
dbpath=D:\Mongo\data  
#日志输出文件路径  
logpath=D:\Mongo\logs\mongo.log  
#错误日志采用追加模式  
logappend=true  
#启用日志文件,默认启用  
journal=true  
#这个选项可以过滤掉一些无用的日志信息,若需要调试使用请设置为false  
quiet=true  
#端口号 默认为27017  
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 新建管理者账户和一般账户的例子

 

然后,把这个服务给卸载了(下面有讲解怎么卸载这个服务,我这就不重复啦),然后再次注册个服务的话,命令多添加个 --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"



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

 

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



至此,所有操作已完成,服务已成功安装。

我就暂时先把这个mongo的数据库在我的电脑上装好,具体怎么使用。以后再说。

 

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





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

 

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



 

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



 

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





安装MongoDB可能出现的问题:

在32位的windows上安装MongoDB,之后执行 mongod 启动服务器出现:

2016-03-22T11:02:51.226+0800 I CONTROL  [main]  
2016-03-22T11:02:51.227+0800 W CONTROL  [main] 32-bit servers don't have journal  
ing enabled by default. Please use --journal if you want durability.  
2016-03-22T11:02:51.227+0800 I CONTROL  [main]  
2016-03-22T11:02:51.231+0800 I CONTROL  [main] Hotfix KB2731284 or later update  
is not installed, will zero-out data files  
2016-03-22T11:02:51.235+0800 I CONTROL  [initandlisten] MongoDB starting : pid=6  
324 port=27017 dbpath=C:\data\db\ 32-bit host=XX-PC  
2016-03-22T11:02:51.235+0800 I CONTROL  [initandlisten] targetMinOS: Windows Vis  
ta/Windows Server 2008  
2016-03-22T11:02:51.235+0800 I CONTROL  [initandlisten] db version v3.2.4  
2016-03-22T11:02:51.235+0800 I CONTROL  [initandlisten] git version: e2ee9ffcf9f  
5a94fad76802e28cc978718bb7a30  
2016-03-22T11:02:51.235+0800 I CONTROL  [initandlisten] allocator: tcmalloc  
2016-03-22T11:02:51.235+0800 I CONTROL  [initandlisten] modules: none  
2016-03-22T11:02:51.235+0800 I CONTROL  [initandlisten] build environment:  
2016-03-22T11:02:51.235+0800 I CONTROL  [initandlisten]     distarch: i386  
2016-03-22T11:02:51.235+0800 I CONTROL  [initandlisten]     target_arch: i386  
2016-03-22T11:02:51.235+0800 I CONTROL  [initandlisten] options: {}  
2016-03-22T11:02:51.237+0800 I STORAGE  [initandlisten] exception in initAndList  
en: 28663 Cannot start server. The default storage engine 'wiredTiger' is not av  
ailable with this build of mongod. Please specify a different storage engine exp  
licitly, e.g. --storageEngine=mmapv1., terminating  
2016-03-22T11:02:51.238+0800 I CONTROL  [initandlisten] dbexit:  rc: 100  

解决方法

按照它的指示:“The default storage engine 'wiredTiger' is not available with this build of mongod. Please specify a different storage engine explicitly, e.g. --storageEngine=mmapv1”,换一个storage engine。

执行:

mongod --dbpath=H:\mongodb\test --storageEngine=mmapv1
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: