10gen 저장소 또는 기본 Debian / Ubuntu 저장소에서 실행 중입니까? 공식 10gen 저장소를 사용하는 것이 좋습니다.
이 링크를 확인하십시오-[Ubuntu에 10gen MongoDB 설치 방법 :] http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/ . 이 변경 전에 이전 mongodb 설치를 제거하는 것이 가장 좋으며,이 경우 저장소 소스 (/etc/apt/source.list)를 수정해야하지만 위 링크에서도 자세히 설명합니다. sysvinit보다 upstart를 사용하는 것이 좋으며 처리 방법은 방법에 나와 있습니다.
10gen Ubuntu를 설정하면 구성 파일은 /etc/mongodb.conf에 있습니다.
별도의 mongod 프로세스를 실행할 수있는 몇 가지 방법이 있습니다. 하나는 단순히 cli에서 실행하는 것입니다.
sudo -u mongodb mongod --dbpath /var/tmp/mongotest --logpath /var/tmp/mongotest_log --port 3001 &
생산하는 ( 'ps'사용)
mongodb 2210 3.3 1.5 259012 15300 pts/0 Dl 11:48 0:00 mongod --dbpath /var/tmp/mongotest --logpath /var/tmp/mongotest_log --port 3001
cli-> mongod --port 3001을 통해 연결할 수 있습니다
또 다른 방법은 /etc/mongodb.conf의 사본을 만드는 것입니다.
sudo cp /etc/mongodb.conf /etc/mongodbnew.conf and editing the following lines in the new file -
# mongodbnew.conf
dbpath=/var/lib/mongodbnew
#where to log
logpath=/var/log/mongodb/mongodbnew.log
port = 27018
dbpath (mongodb 파일이 저장된 위치)를 / var / lib / mongodb에서 / var / lib / mongodbnew로 변경했습니다. 로그 경로가 mongodb.log에서 mongodbnew.log로 변경되었으며 포트가 기본값 27017에서 27018로 변경되었습니다 (줄을 주석 해제하려면 #을 제거해야합니다).
또한이 구성 파일의 새 이름을 반영하도록 맨 위 줄을 변경했습니다.
데이터 디렉토리가 존재하지 않고 데이터 디렉토리가 없으면 mongod 프로세스가 시작되지 않고 소유자와 그룹이 mongodb인지 확인해야합니다.
sudo mkdir /var/lib/mongodbnew
sudo chown -R mongodb:mongodb mongodbnew/
또한 로그 파일의 권한을 작성하고 변경하십시오.
sudo touch /var/log/mongodb/mongodbnew.log && sudo chown mongodb:mongodb /var/log/mongodb/mongodbnew.log
CLI에서 새 mongod 프로세스 (백그라운드)를 시작하려면 다음을 입력하십시오.
sudo -u mongodb /usr/bin/mongod --config /etc/mongodbnew.conf &
화면에 다음을 전송합니다-
"모든 출력 : /var/log/mongodb/mongodbnew.log"
mongod 프로세스가 "ps"로 실행 중인지 확인하십시오.
sysadmin@ubuntu:/var/lib$ ps auwx | grep mongo | egrep -v 'grep|sudo'
mongodb 921 11.3 1.5 627672 15608 ? Ssl 10:56 4:30 /usr/bin/mongod --config /etc/mongodb.conf
mongodb 2137 7.8 1.5 627672 15880 pts/0 Sl 11:36 0:00 /usr/bin/mongod --config /etc/mongodbnew.conf
연결할 수 있는지 확인하려면 Mongo 셸을 실행하십시오.
$ mongo --port 27018
MongoDB shell version: 2.0.5
connecting to: 127.0.0.1:27018/test
>
lsof를 사용하면 두 개의 mongod 프로세스, 원래는 27017에 바인딩되고 새로운 프로세스는 27018에 바인딩됩니다.
$ sudo lsof -i :27017
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mongod 921 mongodb 6u IPv4 9066 0t0 TCP *:27017 (LISTEN)
sysadmin@ubuntu:/var/lib$ sudo lsof -i :27018
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mongod 2137 mongodb 6r IPv4 11923 0t0 TCP *:27018 (LISTEN)
시작시 두 프로세스가 실행되도록하려면 원래 init 구성 파일을 복사하십시오.
sudo cp /etc/init/mongodb.conf /etc/init/mongodbnew.conf
다음과 같은 두 개의 파일이 생성됩니다-
$ ls -lart /etc/init/mongo*
-rw-r--r-- 1 root root 536 May 8 15:51 /etc/init/mongodb.conf
-rw-r--r-- 1 root root 554 Jun 11 11:43 /etc/init/mongodbnew.conf
vi 또는 다음과 같이 원하는 것을 사용하여 새 mongodbnew.conf 파일을 편집하십시오.
## Ubuntu upstart file at /etc/init/mongodbnew.conf
limit nofile 20000 20000
kill timeout 300 # wait 300s between SIGTERM and SIGKILL.
pre-start script
mkdir -p /var/lib/mongodbnew/
mkdir -p /var/log/mongodbnew/
end script
start on runlevel [2345]
런레벨에서 멈춤 [06]
script
ENABLE_MONGODB="yes"
if [ -f /etc/default/mongodbnew ]; then . /etc/default/mongodbnew; fi
if [ "x$ENABLE_MONGODB" = "xyes" ]; then exec start-stop-daemon --start --quiet --chuid mongodb --exec /usr/bin/mongod -- --config /etc/mongodbnew.conf; fi
엔드 스크립트
우분투 12.04에서 이것을 테스트했으며 재부팅 후를 포함하여 잘 작동하는 것으로 보입니다. 나는 분명히 프로덕션 환경에서 실행하지 않았습니다. 사과, 위의 오타가 있지만 많은 정보가 있고 뭔가를 놓친 것일 수 있습니다.
마지막으로 cli- http: //www.mongodb.org/display/DOCS/Replica+Set+Tutorial에서 여러 mongod 인스턴스를 시작하는 예제를 제공하는 Replica 세트에 대한 링크가 있습니다 .