您的位置:首页 > 数据库 > Mongodb

mac下安装mongodb

2014-04-03 16:09 393 查看
先去官网下载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就可以的)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: