先去官网下载http://www.mongodb.org/downloads
建议下载64位的,32位的有一些限制,这个看书都会提到
我下载的是mongodb-osx-x86_64-2.0.3.tgz 看《mongodb权威指南》说的偶数版本号是稳定版,
奇数版本号是开发版。但看网站说推荐安装这个版本,看大版本也是稳定版,无所谓啦,反正也是学习,
好多的基础知识建议多看《mongodb权威指南》
因为下载的是二进制包安装就很简单
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
这个已经都准备好了,目录是必须要提前创建好的,接下来是启动服务
sudo bin/mongod --dbpath=/usr/local/mongodb-2.0.3/data/db --fork --logpath= /usr/local/mongodb-2.0.3/log/mongo.log --logappenddbpath就是指定刚才创建的目录,默认是在 /data/dbfork是作为守护进程启动logpath就是指定日志文件的位置,这个一般在需要的时候可以方便的查看,比如升级,重启之类的 logappend就是让日志持续的添加进日志文件启动好后,因为日志都输出到日志文件了。所以控制台是看不到任何东西的,可以查一下端口,默认端口是 27017netstat -an |grep 27017也可以访问http://localhost:28018 这个是mongodb自己带的一个http的监控页面。
现在关闭mongodb
ps -ef |grep mongodb
可以查到进程号,直接kill就可以,mongodb收到kill信息会自己处理退出,如果kill -9就会造成数据丢失
接下来是开机启动,先找到了Homebrew 一个ruby写的类似apt-get的东西,我看着就有点怕怕的,
就向之前在ubuntu装redmine一样,搞的各种依赖包装在各种地方,我头大啊。
后来找到了launchctl 是mac下的开机启动脚本的服务。比rc.d容易多了
/Library/LaunchDaemon
目录里可以定义一些随系统启动的服务进程
/Library/LaunchAgents
目录可以定义一些随用户登录而启动的服务进程
方法可以参考原帖子 http://hlee.iteye.com/blog/772882
先建立plist文件,因为plist中使用了mongod.conf文件,所以也需要建立这个文件,
这个文件可以在mongodb的源码中找到,也可以google一下。然后加载服务
先用xcode建立一个plist文件,然后用open as-》source code的方式打开,把下面的内容复制进去
<?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里面是启动时要运行的命令,因为我们的配置都在mongod.conf中了所以不能向之前一样启动,
只能通过这个配置文件启动,所有的配置都在配置文件中。
2)WorkingDirectory是mongo的目录。最后是两个日志文件。具体可以参考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下运行launchctl的命令
将mongodb加入到启动服务中,加入后自动启动mongodb
sudo launchctl load /Library/LaunchDaemon/org.mongodb.mongod.plist
将mongodb移出启动服务,移除后需要手动关闭mongodb
sudo launchctl unload /Library/LaunchDaemon/org.mongodb.mongod.plist
一切就绪后,就是将mongodb的bin目录加入到path中,mac下没找到bash_profile文件,有帖子说自己建立一个就可以
我是编辑/etc/profile的,在文件最后加上
export PATH=${PATH}:/usr/local/mongodb-2.0.3/bin
etc/profile文件是只读的,编辑前记得chmod一下,该完文件没问题后再把权限改回去
————————————————————————————————————————————————————————————
最近发现mongodb有个问题,不定期的就不能启动了,查看日志发现说mongod.lock这个文件有问题。
google后,也没有什么有效的解决办法。
1)sudo rm /var/lib/mongodb/mongod.lock (因为安装的不同,这个文件的位置也不一样。具体位置在mongo.log文件中会指出)
2)sudo -u mongodb /usr/bin/mongod -f /etc/mongodb.conf --repair (这行命令,我没有运行,重启mac就可以的)