mac下安装mongodb
先去官網(wǎng)下載http://www.mongodb.org/downloads
建議下載64位的,32位的有一些限制,這個(gè)看書都會提到
我下載的是mongodb-osx-x86_64-2.0.3.tgz 看《mongodb權(quán)威指南》說的偶數(shù)版本號是穩(wěn)定版,
奇數(shù)版本號是開發(fā)版。但看網(wǎng)站說推薦安裝這個(gè)版本,看大版本也是穩(wěn)定版,無所謂啦,反正也是學(xué)習(xí),
好多的基礎(chǔ)知識建議多看《mongodb權(quán)威指南》
因?yàn)橄螺d的是二進(jìn)制包安裝就很簡單
tar zxvf?mongodb-osx-x86_64-2.0.3.tgz
sudo mv?mongodb-osx-x86_64-2.0.3.tgz /usr/local/mongodb-2.0.3
cd /usr/local/mongodb-2.0.3
mkdir -p data/db
mkdir log
chown -R root data/db
chown -R root log
這個(gè)已經(jīng)都準(zhǔn)備好了,目錄是必須要提前創(chuàng)建好的,接下來是啟動(dòng)服務(wù)
?
sudo bin/mongod?--dbpath=/usr/local/mongodb-2.0.3/data/db?--fork?--logpath= /usr/local/mongodb-2.0.3/log/mongo.log?--logappenddbpath就是指定剛才創(chuàng)建的目錄,默認(rèn)是在 /data/dbfork是作為守護(hù)進(jìn)程啟動(dòng)logpath就是指定日志文件的位置,這個(gè)一般在需要的時(shí)候可以方便的查看,比如升級,重啟之類的 logappend就是讓日志持續(xù)的添加進(jìn)日志文件啟動(dòng)好后,因?yàn)槿罩径驾敵龅饺罩疚募恕K钥刂婆_是看不到任何東西的,可以查一下端口,默認(rèn)端口是 27017netstat -an |grep 27017也可以訪問http://localhost:28018 這個(gè)是mongodb自己帶的一個(gè)http的監(jiān)控頁面。
現(xiàn)在關(guān)閉mongodb
ps -ef |grep mongodb
可以查到進(jìn)程號,直接kill就可以,mongodb收到kill信息會自己處理退出,如果kill -9就會造成數(shù)據(jù)丟失
?接下來是開機(jī)啟動(dòng),先找到了Homebrew 一個(gè)ruby寫的類似apt-get的東西,我看著就有點(diǎn)怕怕的,
就向之前在ubuntu裝redmine一樣,搞的各種依賴包裝在各種地方,我頭大啊。
后來找到了launchctl 是mac下的開機(jī)啟動(dòng)腳本的服務(wù)。比rc.d容易多了
/Library/LaunchDaemon? ??目錄里可以定義一些隨系統(tǒng)啟動(dòng)的服務(wù)進(jìn)程
/Library/LaunchAgents? ? ??目錄可以定義一些隨用戶登錄而啟動(dòng)的服務(wù)進(jìn)程
方法可以參考原帖子?http://hlee.iteye.com/blog/772882
先建立plist文件,因?yàn)閜list中使用了mongod.conf文件,所以也需要建立這個(gè)文件,
這個(gè)文件可以在mongodb的源碼中找到,也可以google一下。然后加載服務(wù)
先用xcode建立一個(gè)plist文件,然后用open as-》source code的方式打開,把下面的內(nèi)容復(fù)制進(jìn)去
?
?
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN""http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">?
? ? <dict>?
? ? ? ? <key>Label</key>?
? ? ? ? <string>org.mongodb.mongod</string>?
? ? ? ? <key>ProgramArguments</key>?
? ? ? ? <array>?
? ? ? ? ? ? <string>/usr/local/mongodb-2.0.3/bin/mongod</string>?
? ? ? ? ? ? <string>run</string>?
? ? ? ? ? ? <string>--config</string>?
? ? ? ? ? ? <string>/usr/local/mongodb-2.0.3/mongod.conf</string>?
? ? ? ? </array>?
? ? ? ? <key>RunAtLoad</key>?
? ? ? ? <true/>?
? ? ? ? <key>KeepAlive</key>?
? ? ? ? <true/>?
? ? ? ? <key>WorkingDirectory</key>?
? ? ? ? <string>/usr/local/mongodb-2.0.3</string>?
? ? ? ? <key>StandardErrorPath</key>?
? ? ? ? <string>/usr/local/mongodb-2.0.3/log/error.log</string>?
? ? ? ? <key>StandardOutPath</key>?
? ? ? ? <string>/usr/local/mongodb-2.0.3/log/mongo.log</string>?
? ? </dict>?
</plist>
?
plist的配置我也不是太清楚,就我理解的我說一下。
1)array里面是啟動(dòng)時(shí)要運(yùn)行的命令,因?yàn)槲覀兊呐渲枚荚趍ongod.conf中了所以不能向之前一樣啟動(dòng),
只能通過這個(gè)配置文件啟動(dòng),所有的配置都在配置文件中。
2)WorkingDirectory是mongo的目錄。最后是兩個(gè)日志文件。具體可以參考apple的文檔
http://www.apple.com.cn/developer/mac/library/documentation/UserExperience/Conceptual/tn2004/tn2124.html
?
?
?
下面是mongod.conf文件,只列出了有用的部分
#where to log
?logpath=/usr/local/mongodb-2.0.3/log/mongo.log
?logappend=true
?# fork and run in background
?fork = true
?#port = 27017
?dbpath=/usr/local/mongodb-2.0.3/data
mac下運(yùn)行l(wèi)aunchctl的命令
將mongodb加入到啟動(dòng)服務(wù)中,加入后自動(dòng)啟動(dòng)mongodb
sudo launchctl load /Library/LaunchDaemon/org.mongodb.mongod.plist ? ? ??
將mongodb移出啟動(dòng)服務(wù),移除后需要手動(dòng)關(guān)閉mongodb
sudo launchctl unload /Library/LaunchDaemon/org.mongodb.mongod.plist ? ?
一切就緒后,就是將mongodb的bin目錄加入到path中,mac下沒找到bash_profile文件,有帖子說自己建立一個(gè)就可以
我是編輯/etc/profile的,在文件最后加上
export PATH=${PATH}:/usr/local/mongodb-2.0.3/bin
etc/profile文件是只讀的,編輯前記得chmod一下,該完文件沒問題后再把權(quán)限改回去
————————————————————————————————————————————————————————————
最近發(fā)現(xiàn)mongodb有個(gè)問題,不定期的就不能啟動(dòng)了,查看日志發(fā)現(xiàn)說mongod.lock這個(gè)文件有問題。
google后,也沒有什么有效的解決辦法。
1)sudo rm /var/lib/mongodb/mongod.lock (因?yàn)榘惭b的不同,這個(gè)文件的位置也不一樣。具體位置在mongo.log文件中會指出)
?2)sudo -u mongodb /usr/bin/mongod -f /etc/mongodb.conf --repair (這行命令,我沒有運(yùn)行,重啟mac就可以的)
轉(zhuǎn)載于:https://www.cnblogs.com/qinyan20/p/3643270.html
總結(jié)
以上是生活随笔為你收集整理的mac下安装mongodb的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求第N个质数算法
- 下一篇: 3、PV、UIP、UV指的是什么