原文: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,文件内容如下:
- #数据库路径
- 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 新建管理者账户和一般账户的例子
(这个你刚刚开始学习的时候,可以先不开权限验证,那么在登录数据库的时候,就不需要账号和密码,操作也简单。)
(以下操作是,打开权限认证,使用数据库之前,必须先验证一下,才可以继续,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数据库存在与否的解释:
下一篇具体讲解怎么新建普通的数据库用户和数据库管理者用户。
也就是上面你看到两个数据库是以及登录数据库的账号和密码是怎么设置的。
(这个我已经把链接添加在文章内部了。可以点击链接查看。)