2

写在前面的

Mongo DB 是目前在IT行业非常流行的一种非关系型数据库(NoSql),其灵活的数据存储方式备受当前IT从业人员的青睐。Mongo DB很好的实现了面向对象的思想(OO思想),在Mongo DB中 每一条记录都是一个Document对象。Mongo DB最大的优势在于所有的数据持久操作都无需开发人员手动编写SQL语句,直接调用方法就可以轻松的实现CRUD操作。---摘自百度百科

早就了解过了MongoDB的优势和神奇之处,但一直没有抽出时间来好好学学,觉得不能再拖了,今天终于打算正式开始好好学习一下MongoDB,我觉得自己也不是什么大牛,能力有限哈,所以这个系列的文章,算是对自己学习MongoDB过程中的记录和总结,谈不上什么教程,但是会对学习过程中遇到的问题,进行详细的分析,整理和总结,不过还是希望能帮到和我一样刚接触MongoDB的新手,如果您有什么好的意见或发现文章中的错误和不足,欢迎交流,批评指正。

安装MongoDB

说明

这里我会讲windows和linux环境下的安装,至于MAC OS的话,我就一穷学生,没有设备,只能靠小伙伴们自己研究啊,也希望有条件的小伙伴们将详细的安装过程分享出来(尽管网上有现成的)
传送门http://www.mongodb.org/downloads
至于windows和linux的版本,根据小伙伴们的需要自行决定
先来张图
download

windows环境下的安装与配置

1.windows环境下的是一个msi格式的安装包,直接双击打开即可:
这里写图片描述

2.继续
这里写图片描述
如果选择Complete的话,会默认安装到C盘,我的电脑C盘已经容不下更多东西了,就先择Custom,如下图:
这里写图片描述
修改安装目录,我的安装目录为D:\software\mongodb(截图时没注意),和自己需要的组件(不过建议全选),然后下一步进行安装。
3.将D:\software\mongodb\bin添加到环境变量中:
这里写图片描述
4.刚装完,有点兴奋,直接在命令行中向试试,结果出现下面的错误:
这里写图片描述
我忘了服务还没启动呢
得执行如下命令:

mongod --dbpath f:\MongoDB\data

f:\MongoDB\data这个路径指定了文件的存放路径

看到如下信息,说明启动成功了:
这里写图片描述
MongoDB监听的是27017端口,同时打开浏览器输入http://127.0.0.1:27017,则会看到如下提示:

It looks like you are trying to access MongoDB over HTTP on the native driver port.

然后,再打开一个cmd,输入mongo命令链接数据库,出现如下提示:

2015-05-02T17:10:19.467+0800 I CONTROL Hotfix KB2731284 or later update is not installed, will zero-out data files MongoDB shell version: 3.0.2 connecting to: test

不过你可能嫌输命令的这种方式比较麻烦,你可以将启动命令写在批处理文件里,就像这样:

start mongod --dbpath F:\MongoDB\data

然后保存成MongoDB.bat,下次只要双击运行该脚本即可快速启动服务。
当然了,你也可以将MongoDB以服务的方式启动,不过我觉得在学习的过程中用处不大,小伙伴们可以自己尝试一下,如果有需要的话,我在后面会补上。

至此,windows环境下的mongodb就安装成功了。


要是觉得命令行不好用,推荐一个带图形化界面的软件:MongoVUE,就和navicat差不多,它有免费版的,就是功能少点,但学习过程中完全足够了
传送门:http://www.mongovue.com/
这里写图片描述

连接数据库的过程和navicat差不多,大家可以自己动手试试,不清楚的欢迎留言询问。

Linux环境下的安装与配置

1.首先还是得下载喽,我的环境是elementary OS 0.3 Freya (64-bit),这是一个基于 Ubuntu 14.04的linux系统,相当精美,号称是最漂亮的linux,体积不大,基本上除了界面之外,其他的基本上和Ubuntu 14.04没区别,在后面的叙述中,就当成 Ubuntu 14.04好了,有兴趣的小伙伴可以去官网看看,传送门http://elementary.io/
所以Mongodb下载的时候就用ubuntu的好了:
附上下载地址:https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1404-3.0.2...
我下载的事这个版本的:
mongodb-linux-x86_64-ubuntu1404-3.0.2.tgz

2.接着打开终端,切换到下载目录,然后执行解压缩命令,并查看解压后文件夹里的内容:

tar -xzvf mongodb-linux-x86_64-ubuntu1404-3.0.2.tgz -C .
ls -l mongodb-linux-x86_64-ubuntu1404-3.0.2

文件夹的内容

总用量 68
drwxrwxr-x 2 mybc724 mybc724 4096 5月 3 16:09 bin
-rw-rw-r-- 1 mybc724 mybc724 34520 4月 9 04:43 GNU-AGPL-3.0
-rw-rw-r-- 1 mybc724 mybc724 1359 4月 9 04:43 README
-rw-rw-r-- 1 mybc724 mybc724 22660 4月 9 04:43 THIRD-PARTY-NOTICES

为了便于管理,我比较喜欢将所非apt安装的软件统统挪到/opt目录下,顺便改个好记的名字:

sudo cp -R mongodb-linux-x86_64-ubuntu1404-3.0.2/ /opt/mongodb3.0.2

创建存放文档和日志的文件夹,(这个算是个人喜好,我觉得这么方便管理,你也可以使用默认的路径,/data/db) :

mkdir -p ~/mongodb/data ~mongodb/log

为了避免每次启动Mongodb的时候都要输入很长的路径,得将/opt/mongodb3.0.2/bin添加到PATH中,病是环境变量生效:

echo export 'PATH=/opt/mongodb3.0.2/bin:$PATH' >> ~/.bashrc 
source ~/.bashrc

接下来就可以运行Mongodb啦:

mongod --dbpath=~/mongodb/data --logpath=~/mongodb/log

但不幸的是出现如下提示:

2015-05-03T16:39:59.999+0800 F CONTROL Failed global initialization: FileNotOpen Failed to open "/home/mybc724/~/mongodb/log"

看来是路径错了,再试试:

mongod --dbpath=/home/mybc724/mongodb/data --logpath=/home/mybc724/mongodb/log/logfile

好了,这下OK了~

有一点大家得注意一下
那就是在指定logpath的时候,必须要指明一个文件才行,如果只给个路径是不行的,会出现如下提示:

2015-05-03T16:46:53.584+0800 F CONTROL Failed global initialization: FileNotOpen logpath "/home/mybc724/mongodb/log" should name a file, not a directory.

另外,~/mybc724/mongodb/data,这样的路径写法也是不行的,必须写成/home/mybc724/mongodb/data才行,小伙伴们注意一下.

如果不指定--logpath,Mongodb会将本次运行过程中所有的信息输出到屏幕上,指定--logpath后Mongodb会将日志信息写入文件中,就像我上面指定的logfile,那么会在~/mongodb/log/下生成类似于这样的文件:logfile.2015-05-03T08-48-15

好了,我们现在测试一下是否能正常连接
输入命令mongo,即可进入shell环境:

MongoDB shell version: 3.0.2
connecting to: test
Server has startup warnings:
2015-05-03T17:03:45.963+0800 I CONTROL [initandlisten]
2015-05-03T17:03:45.963+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2015-05-03T17:03:45.963+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2015-05-03T17:03:45.963+0800 I CONTROL [initandlisten]
2015-05-03T17:03:45.963+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2015-05-03T17:03:45.963+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2015-05-03T17:03:45.963+0800 I CONTROL [initandlisten]

当然了,启动一下服务就要写那么长的命令,很麻烦,这里设置一下别名:

echo 'alias mymongod="mongod --dbpath=/home/mybc724/mongodb/data --logpath=/home/mybc724/mongodb/log/logfile"' >> ~/.bashrc
source ~/.bashrc

注意,命令中>>与>的区别,别一不小心将配置文件覆盖了,最好备份一下

好了,试试看新命令:mymongod

~一切OK

最后

到此,windows和linux环境下的Mongodb就安装完成了,写了这么多,连我都嫌自己啰嗦,不过谁让自己是菜鸟呢,希望这是一个良好的开端


这里好像没有人
813 声望31 粉丝