|
【IT168 專稿】目前,NOSQL在業(yè)界正發(fā)展的如火如荼,其中Mongodb是其中十分優(yōu)秀的一員,MongoDB是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù),由C++語(yǔ)言編寫(xiě),旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案。在本系列教程中,將分三部分指導(dǎo)對(duì)Mongodb的學(xué)習(xí),在第一部分中,將簡(jiǎn)單介紹Mongodb的安裝和基本使用方法,在第二部分中,將介紹Java對(duì)Mongodb的編程操作,在第三部分中,將介紹Spring對(duì)Mongodb的編程操作。 Mongodb在Windows上的安裝 首先,我們到Mongodb的官方網(wǎng)站http://www./downloads下載,下載的版本目前是1.8.1,下載后,解壓到文件夾,比如C:\mongodb-win32-1.8.1。接下來(lái),我們可以觀察下,該文件夾下有如下文件:
可以看到,mongodb可謂十分簡(jiǎn)單,只有10個(gè)文件。接下來(lái),我們創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)文件存放的目錄,這里設(shè)定為c:\mymongodb。然后可以在命令行方式下啟動(dòng)mongodb了,運(yùn)行如下命令: C:\mongodb-win32-1.8.1\bin>mongod --dbpath "c:\mymongodb" 當(dāng)出現(xiàn)如下提示信息時(shí),即代表已經(jīng)成功啟動(dòng)了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進(jìn)行了監(jiān)聽(tīng)來(lái)自客戶端的連接,而在28017端口,則啟用了web界面的管理工具,因此我們可以通過(guò)http://localhost:28017進(jìn)行訪問(wèn),可以看到如下的界面:
接下來(lái),我們學(xué)習(xí)下,如何將mongodb安裝成windows 中的服務(wù),首先我們?cè)趍ongodb下,可以通過(guò)—help選項(xiàng),查看相關(guān)的幫助指令,如下: 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兩個(gè)參數(shù)正是我們需要的。因此,將mongodb安裝成windows服務(wù)的命令如下: mongod --dbpath "c:\mymongodb" --logpath "c:\mymongodb\logs.txt" --install --serviceName "MongoDB"上面的命令行中,用—dbpath參數(shù)指出了數(shù)據(jù)庫(kù)的目錄,--logpath則指出了日志存放的目錄,而—serviceName參數(shù)則指出了,命名安裝的服務(wù)名為MongoDB,運(yùn)行后有如下提示: 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的控制面板中的服務(wù)中,看到該服務(wù)。而卸載服務(wù)的命令也很簡(jiǎn)單,如下: mongod --remove --serviceName "MongoDB"在Ubuntu上安裝Mongodb Ubuntu是目前十分受歡迎的UNIX系統(tǒng)的之一,本文將介紹如何在Ubuntu上進(jìn)行安裝mongodb。步驟如下: 1) 首先將如下的語(yǔ)句添加到/etc/apt/sources.list文件的最末,以便將包含最新版本的mongodb發(fā)行包進(jìn)行下載deb http://downloads-distro./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./repo/ubuntu-upstart dist 10gen2) 更新包 sudo apt-get update3) 增加GPG KEY 10gen 包需要GPG KEY,因此需要導(dǎo)入: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB104)安裝 mongodb-10gen 一切準(zhǔn)備好后,就可以安裝了,命令如下: sudo apt-get install mongodb-10gen5) 修改相關(guān)設(shè)置 在ubuntu下,啟動(dòng)mongodb的腳本文件在/etc/init/mongo和/etc/init.d/mongo中可以找到,同時(shí),會(huì)把mongodb下的所有文件復(fù)制到/usr/bin目錄下。而主要的配置文件mongodb.conf則在/etc/mongodb.conf下,可以根據(jù)需要進(jìn)行一些修改,如下: # mongodb.conf # 存儲(chǔ)數(shù)據(jù)文件的位置 # 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) 驗(yàn)證安裝 為了驗(yàn)證安裝,只需要在客戶端嘗試連接就可以了,如下: $ mongo MongoDB shell version: 1.8.1 connecting to: test >
創(chuàng)建Mongodb數(shù)據(jù)庫(kù) 由于Mongodb不是關(guān)系型數(shù)據(jù)庫(kù)文件,實(shí)際上,它并不存在傳統(tǒng)關(guān)系型數(shù)據(jù)庫(kù)中的所謂“數(shù)據(jù)庫(kù)”的概念,但不用擔(dān)心,當(dāng)你第一次新增數(shù)據(jù)時(shí),mongodb就會(huì)以collection集合的形式進(jìn)行保存和新建,而不需要你手工去新建立。下面是例子: 1)列出當(dāng)前的數(shù)據(jù)庫(kù) MongoDB shell version: 1.8.1 connecting to: test > show dbs admin 0.03125GB local (empty)可以使用show dbs 來(lái)列出當(dāng)前有多少個(gè)數(shù)據(jù)庫(kù),上面看到的是有兩個(gè),分別是admin和local。 2) 定義新的數(shù)據(jù)庫(kù)名 我們通過(guò)使用“use new-databasename”的語(yǔ)法去使用一個(gè)新的數(shù)據(jù)庫(kù),注意,即使你的數(shù)據(jù)庫(kù)還沒(méi)建立起來(lái),依然可以這樣使用,因?yàn)閙ongodb會(huì)在真正插入了數(shù)據(jù)后,才會(huì)真正建立起來(lái)。 > use mkyongdb switched to db mkyongdb > show dbs admin 0.03125GB local (empty)注意,在use mkyongdb后,mkyongdb實(shí)際上還沒(méi)真正建立起來(lái),只是表明目前是在使用mkyongdb了。 3)保存數(shù)據(jù) 定義一個(gè)collection,名為“users”,然后插入數(shù)據(jù),如下: > 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()可以找出已插入的數(shù)據(jù)。這個(gè)時(shí)候,名為“users”的collection已經(jīng)建立起來(lái)了,同時(shí),數(shù)據(jù)庫(kù)mkyongdb也建立起來(lái)了。 修復(fù)mongodb數(shù)據(jù)庫(kù) 當(dāng)mongodb發(fā)生問(wèn)題時(shí),就要修復(fù)其數(shù)據(jù)庫(kù),比如遇到以下的信息: ************** old lock file: \data\db\mongod.lock. probably means unclean shutdown recommend removing file and running --repair see: http://dochub./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那么這個(gè)時(shí)候,可以采用如下方法去修復(fù)它: 找到\data\db\mongod.lock這個(gè)文件,刪除它 采用mongod –repair命令進(jìn)行修復(fù) 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小結(jié) 在本文中,簡(jiǎn)單為大家介紹了Mongodb在widnows下和Linux下的安裝和一些基本操作,在下一篇教程中,將學(xué)習(xí)如何使用Java對(duì)Mongodb進(jìn)行操作,敬請(qǐng)期待。 |
|
|
來(lái)自: 深海問(wèn)道 > 《大數(shù)據(jù)次世代》