天天看點

MongoDB 安裝

MAC OSX

Homebrew安裝方法也很簡單:打開終端,然後輸入指令

ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
           

對,就是這麼簡單一條指令就可以将神器Homebrew安裝好.

安裝MongoDB

MongoDB是一個基于分布式檔案存儲的資料庫。由C++語言編寫。旨在為WEB應用提供可擴充的高性能資料存儲解決方案。 MongoDB是一個介于關系資料庫和非關系資料庫之間的産品,是非關系資料庫當中功能最豐富,最像關系資料庫的。他支援的資料結構非常松散,是類似json的bson格式,是以可以存儲比較複雜的資料類型。Mongo最大的特點是他支援的查詢語言非常強大,其文法有點類似于面向對象的查詢語言,幾乎可以實作類似關系資料庫單表查詢的絕大部分功能,而且還支援對資料建立索引.

進入正題開始用Homebrew安裝主角MongoDB~~~

在終端輸入如下指令即可安裝MongoDB

brew install mongodb
           

用Homebrew安裝軟體是不是很爽,耐心等待一會兒MongoDB就會安裝好了……

測試MongoDB是否安裝成功

在終端輸入如下指令進行測試

mongod
           

mongod

指令是用來啟動MongoDB的服務的

執行

mongos

指令後傳回了一堆錯誤資訊,如下:

mongod --help for help and startup options
2014-07-17T21:34:21.732+0800 [initandlisten] MongoDB starting : pid=13117 port=27017 	dbpath=/data/db 64-bit host=zhcmacbook-pro.local
2014-07-17T21:34:21.732+0800 [initandlisten] db version v2.6.3
2014-07-17T21:34:21.732+0800 [initandlisten] git version: nogitversion
2014-07-17T21:34:21.732+0800 [initandlisten] build info: Darwin minimavericks.local 13.2.0 	Darwin Kernel Version 13.2.0: Thu Apr 17 23:03:13 PDT 2014; root:xnu-2422.100.13~1/	RELEASE_X86_64 x86_64 BOOST_LIB_VERSION=1_49
2014-07-17T21:34:21.732+0800 [initandlisten] allocator: tcmalloc
2014-07-17T21:34:21.732+0800 [initandlisten] options: {}
2014-07-17T21:34:21.733+0800 [initandlisten] exception in initAndListen: 10296
*********************************************************************
 	ERROR: dbpath (/data/db) does not exist.
 	Create this directory or give existing directory in --dbpath.
 	See http://dochub.mongodb.org/core/startingandstoppingmongo
*********************************************************************
, terminating
2014-07-17T21:34:21.733+0800 [initandlisten] dbexit:
2014-07-17T21:34:21.733+0800 [initandlisten] shutdown: going to close listening sockets...
2014-07-17T21:34:21.733+0800 [initandlisten] shutdown: going to flush diaglog...
2014-07-17T21:34:21.733+0800 [initandlisten] shutdown: going to close sockets...
2014-07-17T21:34:21.733+0800 [initandlisten] shutdown: waiting for fs preallocator...
2014-07-17T21:34:21.733+0800 [initandlisten] shutdown: lock for final commit...
2014-07-17T21:34:21.733+0800 [initandlisten] shutdown: final commit...
2014-07-17T21:34:21.733+0800 [initandlisten] shutdown: closing all files...
2014-07-17T21:34:21.733+0800 [initandlisten] closeAllFiles() finished
2014-07-17T21:34:21.733+0800 [initandlisten] dbexit: really exiting now
           

這麼一堆錯誤資訊,重點是這幾句

ERROR: dbpath (/data/db) does not exist. Create this directory or give existing directory in –dbpath. See http://dochub.mongodb.org/core/startingandstoppingmongo

錯誤資訊的意思是

dbpath (/data/db)

不存在,需要建立

/data/db

這個目錄或者使用

--dbpath

參數項指定一個已經存在的目錄。

dbpath (/data/db)這個目錄是用來存儲MongoDB資料檔案的地方
           

既然不存在

/data/db

那我們就建立這個目錄

首先在終端輸入

cd /

指令傳回到磁盤根目錄

然後輸入

mkdir -p /data/db

建立

/data/db

再次輸入

mongos

指令啟動MongoDB的服務,服務又退出了傳回一堆資訊如下:

mongod --help for help and startup options
2014-07-17T23:56:40.285+0800 [initandlisten] MongoDB starting : pid=21182 port=27017 	dbpath=/data/db 64-bit host=zhcmacbook-pro.local
2014-07-17T23:56:40.285+0800 [initandlisten] db version v2.6.3
2014-07-17T23:56:40.285+0800 [initandlisten] git version: nogitversion
2014-07-17T23:56:40.285+0800 [initandlisten] build info: Darwin minimavericks.local 13.2.0 	Darwin Kernel Version 13.2.0: Thu Apr 17 23:03:13 PDT 2014; root:xnu-2422.100.13~1/	RELEASE_X86_64 x86_64 BOOST_LIB_VERSION=1_49
2014-07-17T23:56:40.285+0800 [initandlisten] allocator: tcmalloc
2014-07-17T23:56:40.285+0800 [initandlisten] options: {}
2014-07-17T23:56:40.287+0800 [initandlisten] exception in initAndListen: 10309 Unable to 	create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod 	instance already running?, terminating
2014-07-17T23:56:40.287+0800 [initandlisten] dbexit:
2014-07-17T23:56:40.287+0800 [initandlisten] shutdown: going to close listening sockets...
2014-07-17T23:56:40.287+0800 [initandlisten] shutdown: going to flush diaglog...
2014-07-17T23:56:40.287+0800 [initandlisten] shutdown: going to close sockets...
2014-07-17T23:56:40.287+0800 [initandlisten] shutdown: waiting for fs preallocator...
2014-07-17T23:56:40.287+0800 [initandlisten] shutdown: lock for final commit...
2014-07-17T23:56:40.287+0800 [initandlisten] shutdown: final commit...
2014-07-17T23:56:40.287+0800 [initandlisten] shutdown: closing all files...
2014-07-17T23:56:40.288+0800 [initandlisten] closeAllFiles() finished
2014-07-17T23:56:40.288+0800 [initandlisten] shutdown: removing fs lock...
2014-07-17T23:56:40.288+0800 [initandlisten] couldn't remove fs lock errno:9 Bad file 	descriptor
2014-07-17T23:56:40.288+0800 [initandlisten] dbexit: really exiting now
           

出錯原因是這幾句log

create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod 	instance already running?, terminating
           

意思是不建立和打開

/data/db/mongod.lock

這個檔案,原因是

Permission denied

(權限拒絕),看來是目前使用者執行

mongod

這個指令時,對

/data/db

這個目錄沒有操作權限,OK,知道原因就好辦了,給

/data/db

加上權限。

在終端輸入如下指令:

sudo chown -R  目前登入的使用者名 /data
           

再次在終端輸入

mongod

啟動MongoDB的服務,傳回如下資訊:

mongod --help for help and startup options
2014-07-18T01:29:23.286+0800 [initandlisten] MongoDB starting : pid=22420 port=27017 	dbpath=/data/db 64-bit host=zhcmacbook-pro.local
2014-07-18T01:29:23.286+0800 [initandlisten] db version v2.6.3
2014-07-18T01:29:23.286+0800 [initandlisten] git version: nogitversion
2014-07-18T01:29:23.286+0800 [initandlisten] build info: Darwin minimavericks.local 13.2.0 	Darwin Kernel Version 13.2.0: Thu Apr 17 23:03:13 PDT 2014; root:xnu-2422.100.13~1/	RELEASE_X86_64 x86_64 BOOST_LIB_VERSION=1_49
2014-07-18T01:29:23.286+0800 [initandlisten] allocator: tcmalloc
2014-07-18T01:29:23.287+0800 [initandlisten] options: {}
2014-07-18T01:29:23.288+0800 [initandlisten] journal dir=/data/db/journal
2014-07-18T01:29:23.288+0800 [initandlisten] recover : no journal files present, no 	recovery needed
2014-07-18T01:29:23.437+0800 [initandlisten] waiting for connections on port 27017
           

終于啟動成功了,然後再打開一個新的終端視窗輸入

mongo

指令,傳回如下資訊:

MongoDB shell version: 2.6.3
connecting to: test
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
>
           

哦耶!,成功進入MongoDB的指令行模式,到這裡MongoDB就安裝好了!:] :] :]……

轉自http://www.inferjay.com/blog/2014/07/18/use-homebrew-install-mongodb-at-the-mac-osx-10.9.4/

WINDOWS

如題,這個問題也百度了很久,百度還是挺給力的,但是都沒能解決問題,後來在大神(原諒我不知道大神叫什麼)的指導下,終于設定成功,特分享下設定過程。。

MongoDB設定資料庫我就不說了。。。額。。算了,還是整理下,自己也複習一遍。。由于我是下載下傳的安裝包,exe直接安裝的。。

1.安裝完畢之後,我的預設安裝在  C:\Program Files\MongoDB  下面,bin目錄的完整路徑為 C:\Program Files\MongoDB\Server\3.2\bin(以後要用到)

2.打開cmd(普通打開或者管理者打開均可),輸入指令cd C:\Program Files\MongoDB\Server\3.2\bin進入bin目錄

3.繼續輸入指令mongod --dbpath=d:/data/db (d:/data/db是我指定的資料庫檔案存放地點,當然預設是c:/data/db)

4.如果之前是管理者身份的cmd,那就繼續,否則重開個管理者身份的cmd,如果你已經有某個服務名了,比如MongoDB,那麼先把這個删了,sc delete MongoDB

5.然後再次進入第二部的檔案夾,輸入指令 mongod --logpath d:\data\log\MongoDB.log --logappend --dbpath d:\data\db --directoryperdb --serviceName MongoDB --install

6.繼續輸入指令net start MongoDB(MongoDB這個是第五步指定的服務名稱)

好了,到這裡可能會出現部分問題:比如:

72 Requested option conflicts with current storage engine option for directoryPerDB; you requested true but the current server storage is already set to false and cannot be changed, terminating

這個錯誤是在d:\data\log\MongoDB.log 也就是第五步裡面設定的log檔案裡面檢視的。這個問題百度沒有答案。。

修改方法為:注意看第六步的 有個單詞“directoryperdb”,沒錯,去掉。。那麼指令就變成 mongod --logpath d:\data\log\MongoDB.log --logappend --dbpath d:\data\db --serviceName MongoDB --install這個了。。

然後繼續第六步即可(涉及删除服務的,參照第四步)

若還有問題。。額。。。歡飲一起讨論。。我也是剛接觸。。。

======2016-2-24

如上,雖然已經把服務弄成windows服務,每次連資料庫的時候,不需要先去啟動mongo服務了。。但是shell連接配接資料庫還是要先cd到mongo安裝的bin目錄下。。很麻煩。。

MongoDB 安裝

接下來把bin目錄寫到系統變量裡面:

  1. 進入到進階系統設定;
  2. 進入到環境變量;
  3. 在系統變量裡面找到變量名為

    Path

    輕按兩下進入;
  4. 在變量值的結尾處加入;

    C:\Program Files\MongoDB\Server\3.2\bin

    (這個就是mongo安裝目錄的bin目錄,别漏掉了分号),儲存;
  5. 再建立一個CMD,輸入

    mongo

    試試。
MongoDB 安裝

參考:http://www.xiaoboy.com/detail/2015020310.html(灰常感謝)

以上複制于http://www.cnblogs.com/daiyonghui/archive/2016/02/23/5209076.html(感謝again)

-------------------------------

php的mongo擴充已經不再維護了, 新的項目中composer update會報錯

Problem 1
    - yiisoft/yii2-mongodb 2.1.2 requires ext-mongodb >=1.0.0 -> the requested PHP extension mongodb is missing from your system.
    - yiisoft/yii2-mongodb 2.1.1 requires ext-mongodb >=1.0.0 -> the requested PHP extension mongodb is missing from your system.
    - yiisoft/yii2-mongodb 2.1.0 requires ext-mongodb >=1.0.0 -> the requested PHP extension mongodb is missing from your system.
    - Installation request for yiisoft/yii2-mongodb ~2.1.0 -> satisfiable by yiisoft/yii2-mongodb[2.1.0, 2.1.1, 2.1.2].
      

  是以需要重裝個php-mongodb的擴充才能解決問題, 請看仔細, 末尾多了'db', mongo變成mongodb了...