MongoDB 설치 및 설정

MongoDB 설치 및 설정

Homebrew를 통해 설치한 경우로 설명한다.

* 관련 링크: https://hitendert.wordpress.com/2013/08/24/steps-to-setup-mongodb-on-mac/
* 관련 링크: https://gist.github.com/tonypujals/9630872
* 관련 링크: http://www.mongodbspain.com/en/2014/11/06/install-mongodb-on-mac-os-x-yosemite/

MongoDB 위치 변경

필요한 위치에 저장소를 생성한다. 로그 저장 위치도 포함



$ sudo mkdir -p /var/log/mongodb
$ sudo mkdir -p /data/db
$ sudo chown $('whoami') /data/db


* 관련 링크: https://gist.github.com/tonypujals/9630872

명령으로 처리하는 방법


$ mongod --dbpath "/data/db"


Configuration Files (mongod.conf) 파일 수정하기



$ sublime /usr/local/etc/mongod.conf

systemLog:
  destination: file
  path: /var/log/mongodb/mongo.log
  logAppend: true
storage:
  dbPath: /data/db <-- DB 위치(자신이 원하는 위치로 정할 수 있다.)
net:
  bindIp: 127.0.0.1 <-- 외부 IP를 허용하려면, "0.0.0.0"으로, local만 허용할 때는, "127.0.0.1"

Configuration Files (mongod.conf) 간단 설명

# Store data at default /data/db
dbpath = /data/db
# Append logs to /var/log/mongodb/mongo.log
logpath = /var/log/mongodb/mongo.log
logappend = true
# Run as conventional database
fork = true
# 25GB oplog size;
oplogSize=25600
# Only accept local connections. Note: This did not work, hence commented. Currently listens to all the interfaces.
#bind_ip = 127.0.0.1,X.X.X.X,X.X.X.X
# Choose a name for your replica set; make sure its consistent
replSet = tarzan
# Diagnostic Configurations
# http://docs.mongodb.org/manual/administration/configuration/
# Profiles if query is slower than 50ms; default is 100ms
slowms = 50
# Profile the query; sets the level to profile
profile = 3
# Verbose for logging; currently turned off; switch on when there are real issues
#verbose = true
#Level 3 logs all read and write operations
diaglog = 3
# Forces all request to be validated. Don`t use in production as this can cause performance issue. Use only when in untrusted environment.
#objcheck = true
# Profile cpu
cpu = true

MongoDB 실행 여부 확인

$ ps -ef | grep mongo

서비스로 등록

/Library/LaunchDaemons/org.mongodb.mongod.plist
-------------------------------
<?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.mongo.mongod</string>
    <key>RunAtLoad</key>
    <true/>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/mongod</string>
        <!--<string>--dbpath</string>
        <string>/Application/Application HD/data/</string>
        <string>--logpath</string>
        <string>/var/log/mongodb/mongodb.log</string>-->
        <string>run</string>
        <string>--config</string>
        <string>/usr/local/etc/mongod.conf</string>
    </array>
<key>UserName</key>
<string>keiches</string>
</dict>
</dict>
</plist>
--------------------------------------


$ sudo sublime /Library/LaunchDaemons/org.mongo.mongod.plist
$ sudo launchctl load org.mongo.mongod.plist
(Yosemite: sudo launchctl load - w "org.mongo.mongod.plist")
$ sudo launchctl start org.mongo.mongo.plist
$ ps -eaf | grep mongod
* mongo-express를 서비스로 등록
$ sublime /usr/local/lib/node_modules/mongo-express/com.mongo.db.plist

* 실행
$ launchctl load /usr/local/lib/node_modules/mongo-express/com.mongo.db.plist <--Yosemite부터는 "launchctl load -w[-wF]"

<?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>Disabled</key>
    <true/>
    <key>MongoDB Web Client</key> <-- Yosemite부터는 <key>Label</key>로 변경
    <string>com.mongo.db</string>
    <key>OnDemand</key>
    <false/>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/node</string>
        <string>/usr/local/lib/node_modules/mongo-express/app.js</string>
        <string>&</string> <-- 서비스로 등록
    </array>
</dict>
</plist>

$ cp /usr/local/lib/node_modules/mongo-express/config.default.js /usr/local/lib/node_modules/mongo-express/config.js
$ sublime /usr/local/lib/node_modules/mongo-express/config.js

* 관련 링크: https://gist.github.com/tamitutor/6a1e41eec0ce021a9718

* Docker에서 MongoDB 사용하기

댓글

이 블로그의 인기 게시물

Next.js에서 자연스러운 Page Transition 방법

[flutter] Android - Package간 sdk version 등이 맞지 않아 오류가 발생하는 경우

[Windows] Chocolatey upgrade