设为首页 收藏本站
查看: 869|回复: 0

[经验分享] 主流NOSQL数据库之MongoDB快速入门

[复制链接]
YunVN网友  发表于 2015-7-9 10:09:15 |阅读模式
  目前,NOSQL在业界正发展的如火如荼,其中Mongodb是其中十分优秀的一员,MongoDB是一个基于分布式文件存储的数据库,由C++语言编写,旨在为WEB应用提供可扩展的高性能数据存储解决方案。在本系列教程中,将分三部分指导对Mongodb的学习,在第一部分中,将简单介绍Mongodb的安装和基本使用方法,在第二部分中,将介绍Java对Mongodb的编程操作,在第三部分中,将介绍Spring对Mongodb的编程操作。
  Mongodb在Windows上的安装
  首先,我们到Mongodb的官方网站http://www.mongodb.org/downloads下载,下载的版本目前是1.8.1,下载后,解压到文件夹,比如C:\mongodb-win32-1.8.1。接下来,我们可以观察下,该文件夹下有如下文件:
DSC0000.jpg
  可以看到,mongodb可谓十分简单,只有10个文件。接下来,我们创建一个数据库文件存放的目录,这里设定为c:\mymongodb。然后可以在命令行方式下启动mongodb了,运行如下命令:


DSC0001.gif C:\mongodb-win32-1.8.1\bin>mongod --dbpath "c:\mymongodb"
当出现如下提示信息时,即代表已经成功启动了mongodb

Fri Apr 29 17:15:34 [initandlisten] MongoDB starting :
pid=5280 port=27017 dbpath=c:\mymongodb 32-bi
...
Fri Apr 29 17:15:34 [initandlisten] waiting for connections on port 27017
Fri Apr 29 17:15:34 [websvr] web admin interface listening on port 28017  在上面的信息中,我们注意到,mongodb在端口27017进行了监听来自客户端的连接,而在28017端口,则启用了web界面的管理工具,因此我们可以通过http://localhost:28017进行访问,可以看到如下的界面:
DSC0002.jpg
▲点击查看大图
  接下来,我们学习下,如何将mongodb安装成windows 中的服务,首先我们在mongodb下,可以通过—help选项,查看相关的帮助指令,如下:


   C:\MongoDB\bin>mongod --help

Windows Service Control Manager options:
  --install                install mongodb service
  --remove              remove mongodb service
  --reinstall             reinstall mongodb service (equivilant of mongod
                             --remove followed by mongod --install)
  --serviceName arg           windows service name
  --serviceDisplayName arg windows service display name
  --serviceDescription arg    windows service description
  --serviceUser arg              user name service executes as
  --servicePassword arg       password used to authenticate serviceUser  可以看到,--install和—remove两个参数正是我们需要的。因此,将mongodb安装成windows服务的命令如下:


  mongod --dbpath "c:\mymongodb" --logpath "c:\mymongodb\logs.txt" --install --serviceName "MongoDB"  上面的命令行中,用—dbpath参数指出了数据库的目录,--logpath则指出了日志存放的目录,而—serviceName参数则指出了,命名安装的服务名为MongoDB,运行后有如下提示:


all output going to: c:\mymongodb\logs.txt
Creating service MongoDB.
Service creation successful.
Service can be started from the command line via 'net start "MongoDB"'.  并且可以在windows的控制面板中的服务中,看到该服务。而卸载服务的命令也很简单,如下:


mongod --remove --serviceName "MongoDB"
    在Ubuntu上安装Mongodb
  Ubuntu是目前十分受欢迎的UNIX系统的之一,本文将介绍如何在Ubuntu上进行安装mongodb。步骤如下:
  1) 首先将如下的语句添加到/etc/apt/sources.list文件的最末,以便将包含最新版本的mongodb发行包进行下载deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen,修改后的sources.list文件如下:


  #...content omitted ...

## This software is not part of Ubuntu, but is offered by third-party
## developers who want to ship their latest software.
deb http://extras.ubuntu.com/ubuntu natty main
deb-src http://extras.ubuntu.com/ubuntu natty main

#mongo repo ###############new line
deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen  2) 更新包


  sudo apt-get update  3) 增加GPG KEY
  10gen 包需要GPG KEY,因此需要导入:


  sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10  4)安装 mongodb-10gen
  一切准备好后,就可以安装了,命令如下:


  sudo apt-get install mongodb-10gen  5) 修改相关设置
  在ubuntu下,启动mongodb的脚本文件在/etc/init/mongo和/etc/init.d/mongo中可以找到,同时,会把mongodb下的所有文件复制到/usr/bin目录下。而主要的配置文件mongodb.conf则在/etc/mongodb.conf下,可以根据需要进行一些修改,如下:


# mongodb.conf

# 存储数据文件的位置

# Note: if you run mongodb as a non-root user (recommended) you may
# need to create and set permissions for this directory manually,
# e.g., if the parent directory isn't mutable by the mongodb user.
dbpath=/var/lib/mongodb

#存放log的地方
logpath=/var/log/mongodb/mongodb.log

logappend=true

#port = 27017
#......  6) 验证安装
  为了验证安装,只需要在客户端尝试连接就可以了,如下:


$ mongo
MongoDB shell version: 1.8.1
connecting to: test
>  

    创建Mongodb数据库
  由于Mongodb不是关系型数据库文件,实际上,它并不存在传统关系型数据库中的所谓“数据库”的概念,但不用担心,当你第一次新增数据时,mongodb就会以collection集合的形式进行保存和新建,而不需要你手工去新建立。下面是例子:
  1)列出当前的数据库


MongoDB shell version: 1.8.1
connecting to: test
> show dbs
admin   0.03125GB
local   (empty)  可以使用show dbs 来列出当前有多少个数据库,上面看到的是有两个,分别是admin和local。
  2) 定义新的数据库名
  我们通过使用“use new-databasename”的语法去使用一个新的数据库,注意,即使你的数据库还没建立起来,依然可以这样使用,因为mongodb会在真正插入了数据后,才会真正建立起来。


> use mkyongdb
switched to db mkyongdb
> show dbs
admin   0.03125GB
local   (empty)  注意,在use mkyongdb后,mkyongdb实际上还没真正建立起来,只是表明目前是在使用mkyongdb了。
  3)保存数据
  定义一个collection,名为“users”,然后插入数据,如下:


> db.users.save( {username:"mkyong"} )
> db.users.find()
{ "_id" : ObjectId("4dbac7bfea37068bd0987573"), "username" : "mkyong" }
>
> show dbs
admin   0.03125GB
local   (empty)
mkyongdb        0.03125GB  可以看到,用db.users.find()可以找出已插入的数据。这个时候,名为“users”的collection已经建立起来了,同时,数据库mkyongdb也建立起来了。
    修复mongodb数据库
  当mongodb发生问题时,就要修复其数据库,比如遇到以下的信息:


**************
old lock file: \data\db\mongod.lock.  probably means unclean shutdown
recommend removing file and running --repair
see: http://dochub.mongodb.org/core/repair for more information
*************
Mon May 09 12:37:43 [initandlisten] exception in initAndListen std::exception: old lock file,
terminating
Mon May 09 12:37:43 dbexit:
Mon May 09 12:37:43 [initandlisten] shutdown: going to close listening sockets...
Mon May 09 12:37:43 [initandlisten] shutdown: going to flush diaglog...
Mon May 09 12:37:43 [initandlisten] shutdown: going to close sockets...
Mon May 09 12:37:43 [initandlisten] shutdown: waiting for fs preallocator...
Mon May 09 12:37:43 [initandlisten] shutdown: closing all files...
Mon May 09 12:37:43 closeAllFiles() finished
Mon May 09 12:37:43 dbexit: really exiting now  那么这个时候,可以采用如下方法去修复它:


找到\data\db\mongod.lock这个文件,删除它
采用mongod –repair命令进行修复
  Mon May 09 12:42:57 [initandlisten] db version v1.8.1, pdfile version 4.5
//......
Mon May 09 12:42:57 [initandlisten] shutdown: going to close listening sockets...
Mon May 09 12:42:57 [initandlisten] shutdown: going to flush diaglog...
Mon May 09 12:42:57 [initandlisten] shutdown: going to close sockets...
Mon May 09 12:42:57 [initandlisten] shutdown: waiting for fs preallocator...
Mon May 09 12:42:57 [initandlisten] shutdown: closing all files...
Mon May 09 12:42:57 closeAllFiles() finished
Mon May 09 12:42:57 [initandlisten] shutdown: removing fs lock...
Mon May 09 12:42:57 dbexit: really exiting now    小结
  在本文中,简单为大家介绍了Mongodb在widnows下和Linux下的安装和一些基本操作,在下一篇教程中,将学习如何使用Java对Mongodb进行操作,敬请期待。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-84687-1-1.html 上篇帖子: mongodb概念--文档、集合、数据库、shell(转并学习) 下篇帖子: MongoDB在Windows下安装及配置
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表