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目錄下。。很麻煩。。
接下來把bin目錄寫到系統變量裡面:
- 進入到進階系統設定;
- 進入到環境變量;
- 在系統變量裡面找到變量名為
輕按兩下進入;Path
- 在變量值的結尾處加入;
(這個就是mongo安裝目錄的bin目錄,别漏掉了分号),儲存;C:\Program Files\MongoDB\Server\3.2\bin
- 再建立一個CMD,輸入
試試。mongo
參考: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了...