我重新安装了Mac上的MongoDB。尝试不使用brew来进行安装并记录了一下

我打算将这个作为圣诞节日历的主题!@n0bisuke 在此!

背景 – 背景的情况

这是关于我想在Node.js中使用数据库的故事。一开始我考虑了MongoDB这个简单的想法(之后还想写下选择的理由)。于是我安装了通过brew安装的MongoDB,但是发现它的版本太低了,所以我卸载了它并重新进行了二进制安装。

如果使用brew来做的话

基本上请参考此处以安装MongoDB。

目前的安装状态是2.4.9。

一眨眼的功夫。

$ brew install mongodb

==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/mongodb-2.4.9.mav
######################################################################## 100.0%
==> Pouring mongodb-2.4.9.mavericks.bottle.2.tar.gz
==> Caveats
To have launchd start mongodb at login:
    ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents
Then to load mongodb now:
    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
Or, if you don't want/need launchctl, you can just run:
    mongod --config /usr/local/etc/mongod.conf
==> Summary
?  /usr/local/Cellar/mongodb/2.4.9: 391 files, 302M
$mongod --version
db version v2.4.9

根据最新的信息,似乎是2.6。

重新安装

卸载brew中的mongodb。

$ mongod --version
db version v2.4.9
Mon Dec  1 18:29:56.774 git version: nogitversion


$ brew uninstall mongodb
Uninstalling /usr/local/Cellar/mongodb/2.4.9...


$ mongod --version
-bash: /usr/local/bin/mongod: No such file or directory
#アンインストールされましたね

从二进制安装

如果直接拿来的话

或者

如果从命令行执行的情况下

$ brew install wget
$ wget https://fastdl.mongodb.org/osx/mongodb-osx-x86_64-2.6.5.tgz
$ tar zxvf mongodb-osx-x86_64-2.6.5.tgz
$ rm mongodb-osx-x86_64-2.6.5.tgz

进入用户的主页

$ mv mongodb-osx-x86_64-2.6.5 ~/

# ~/mongoにしておく
$ mv mongodb-osx-x86_64-2.6.5 mongodb

版本检查

$ cd ~/mongodb/bin
$ ./mongod --version
db version v2.6.5
2014-12-01T18:38:49.421+0900 git version: e99d4fcb4279c0279796f237aa92fe3b64560bf6

正确地变成了2.6.5版本。

将路径添加。

$ pwd
/Users/sugawara_ryosuke/mongodb/bin

$ vim ~/.bash_profile

在.bash_profile文件中添加以下内容

export PATH=/Users/sugawara_ryosuke/mongodb/bin:$PATH
$ source ~/.bash_profile
$ mongod --version
db version v2.6.5

启动MongoDB

准备启动前的事项

$ mkdir mongodb/db
$ mkdir mongodb/log

启动

你可以使用以下命令来启动。

$ mongod --nojournal --noprealloc --dbpath mongodb/db

一旦启动,终端将处于等待状态。

$ mongod --nojournal --noprealloc --dbpath mongodb/db
note: noprealloc may hurt performance in many applications
2014-12-01T18:51:24.529+0900 [initandlisten] MongoDB starting : pid=51527 port=27017 dbpath=mongodb/db 64-bit host=n0bisuke.local
2014-12-01T18:51:24.529+0900 [initandlisten] 
2014-12-01T18:51:24.529+0900 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
2014-12-01T18:51:24.529+0900 [initandlisten] db version v2.6.5
2014-12-01T18:51:24.529+0900 [initandlisten] git version: e99d4fcb4279c0279796f237aa92fe3b64560bf6
2014-12-01T18:51:24.529+0900 [initandlisten] build info: Darwin bs-osx108-1 12.5.0 Darwin Kernel Version 12.5.0: Sun Sep 29 13:33:47 PDT 2013; root:xnu-2050.48.12~1/RELEASE_X86_64 x86_64 BOOST_LIB_VERSION=1_49
2014-12-01T18:51:24.529+0900 [initandlisten] allocator: system
2014-12-01T18:51:24.529+0900 [initandlisten] options: { storage: { dbPath: "mongodb/db", journal: { enabled: false }, preallocDataFiles: false } }
2014-12-01T18:51:24.674+0900 [initandlisten] waiting for connections on port 27017
・
・
・

默认端口是27017。

当您访问http://localhost:27017时,您会看到显示”看起来您正在尝试通过本地驱动程序端口访问MongoDB”,这表明MongoDB已成功启动。

在结束时按control + c

和Node.js类似,可以使用control + c来结束进程。

启动恶魔

因为每次在终端上启动都很麻烦,所以我会启动守护进程。

$ mongod --fork --logpath mongodb/log/mongodb.log --nojournal --noprealloc --dbpath mongodb/db

note: noprealloc may hurt performance in many applications
about to fork child process, waiting until server is ready for connections.
forked process: 51518
child process started successfully, parent exiting

通常情况下,启动时将在控制台输出日志信息,但是在守护程序启动时需要指定日志文件的路径作为输出目标。

最终

我只是个轻量级用户,所以就算使用MongoDB2.4也完全没有问题,哈哈。

bannerAds