求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
  
 
 
     
   
分享到
主流NOSQL数据库之MongoDB快速入门
 

作者:111206,发布于2012-2-7

 

目前,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。接下来,我们可以观察下,该文件夹下有如下文件:

可以看到,mongodb可谓十分简单,只有10个文件。接下来,我们创建一个数据库文件存放的目录,这里设定为c:\mymongodb。然后可以在命令行方式下启动mongodb了,运行如下命令:

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进行访问,可以看到如下的界面:

接下来,我们学习下,如何将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进行操作,敬请期待。


相关文章 相关文档 相关视频



我们该如何设计数据库
数据库设计经验谈
数据库设计过程
数据库编程总结
数据库性能调优技巧
数据库性能调整
数据库性能优化讲座
数据库系统性能调优系列
高性能数据库设计与优化
高级数据库架构师
数据仓库和数据挖掘技术
Hadoop原理、部署与性能调优

 
分享到
 
 
     


MySQL索引背后的数据结构
MySQL性能调优与架构设计
SQL Server数据库备份与恢复
让数据库飞起来 10大DB2优化
oracle的临时表空间写满磁盘
数据库的跨平台设计
更多...   


并发、大容量、高性能数据库
高级数据库架构设计师
Hadoop原理与实践
Oracle 数据仓库
数据仓库和数据挖掘
Oracle数据库开发与管理


GE 区块链技术与实现培训
航天科工某子公司 Nodejs高级应用开发
中盛益华 卓越管理者必须具备的五项能力
某信息技术公司 Python培训
某博彩IT系统厂商 易用性测试与评估
中国邮储银行 测试成熟度模型集成(TMMI)
中物院 产品经理与产品管理
更多...