MongoDB를 Windows 서비스로 어떻게 실행할 수 있습니까?


답변:


118

난 당신이 그것을 실행하면 생각 --install명령 줄 스위치는 Windows 서비스로 설치합니다.

mongod --install

그래도이 스레드를 먼저 읽어 보는 것이 좋습니다. 관련 레지스트리 키가 작성 될 때 상대 / 절대 경로에 문제가있는 것 같습니다.


7
나는 이것을 다음과 같이 실행하여 마침내 설치했다 : mongod.exe --service
heisthedon

3
명령 줄에 전체 경로를 입력하는 것 같습니다 : c : \> c : \ mongodb \ bin \ mongod.exe --service 그러나 명령 창을 관리자 (특히 Windows 서버에서)로 실행해야합니다. 그렇지 않으면 UAC에 의해 방해받을 수 있습니다.
JC Grubbs

2
이 요점은 devleopment 머신 셋업을 위해 시간을 절약 할 수 있습니다. gist.github.com/serdarb/5102848
Serdar

1
--install을 실행 한 후에는net start MongoDB
John

17
로그 파일 경로가 필요합니다.이 mongod --dbpath = "c : \ data \ db"--logpath = "c : \ data \ db \ log.txt"--install과 같은 dbpath 및 로그 파일 경로를 추가 할 수 있습니다. net start MongoDB를 실행해야합니다.
sivaram636

355

몇 시간 동안 노력한 끝에 마침내 해냈습니다.

<MONGODB_PATH>\bin시스템 변수에 디렉토리를 추가했는지 확인하십시오PATH

먼저이 명령을 실행했습니다.

D:\mongodb\bin>mongod --remove

그런 다음 관리자 권한으로 명령 프롬프트를 연 후이 명령을 실행했습니다.

D:\mongodb\bin>mongod --dbpath=D:\mongodb --logpath=D:\mongodb\log.txt --install

그 직후 명령 프롬프트에 다음을 실행하십시오.

services.msc

MongoDB 서비스를 찾아 시작을 클릭하십시오.


참고 : 관리자 권한으로 명령 프롬프트를 실행하십시오.

이 작업을 수행하지 않으면 D:\mongodb\log.txt위의 예에서 로그 파일에 다음과 같은 행이 포함됩니다.

2016-11-11T15:24:54.618-0800 I CONTROL  [main] Trying to install Windows service 'MongoDB'
2016-11-11T15:24:54.618-0800 I CONTROL  [main] Error connecting to the Service Control Manager: Access is denied. (5)

가 아닌 관리 콘솔에서 서비스 (즉, 시작하려고 경우 net start MongoDB또는 Start-Service MongoDBPowerShell의)를,이 같은 응답을 얻을 것이다 :

System error 5 has occurred.
Access is denied.

아니면 이거:

Start-Service : Service 'MongoDB (MongoDB)' cannot be started due to the following error: Cannot open MongoDB service
on computer '.'.
At line:1 char:1
+ Start-Service MongoDB
+ ~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OpenError: (System.ServiceProcess.ServiceController:ServiceController) [Start-Service],
   ServiceCommandException
    + FullyQualifiedErrorId : CouldNotStartService,Microsoft.PowerShell.Commands.StartServiceComman

10
net start MongoDB을 사용 하는 대신 시작할 수도 있습니다 services.msc. ( mongod나에게 것을 권장.)

1
이것은 나를 위해 일했습니다. 로그 파일의 경로는 아직 존재하지 않는 경우 수동으로 만들어야합니다 (이 예제에서는 mongo 디렉토리 이외의 경로를 사용했습니다).
dgundersen 2019

처음에 Mongo는 서비스로 시작했지만 데이터베이스가 비어있었습니다. 경로에 \ data를 추가하여 기존 데이터베이스 만 볼 수있었습니다. mongod --dbpath = D : \ mongodb \ data
Jeremy Thille

"관리자 권한으로 명령 프롬프트를 실행하십시오"-작업이 완료되었습니다! 일반 권한으로 실행해도 경고가 작성되지 않지만 서비스는 생성되지 않습니다. 권한, 권한, 권한!
Dzoukr

1
검증 된 답변이어야합니다
Logan Wlv

63

뿐만 아니라 --install,

또한 필요 --dbpath하고--logpath

OS 재부팅 후 "mongod.lock "을 수동으로 삭제해야합니다.


4
mongod.lock 파일을 삭제하려면 +1입니다. 이것은 여전히 ​​64 비트에서 실행되는 1.8.1의 문제인 것으로 보입니다.
SethO

4
--config를 지정하고 dbpath, logpath 및 기타 옵션을 정의하는 것이 좋습니다.
Oleg

3
mongod.lock버그가 수정되었습니다.Windows 8 x64
Jonathan Czitkovics

50

다른 답변과 달리 이것은 ..

시스템 재부트 / 재시작시 자동으로 서비스 시작

MongoDB 설치

윈도우

(1) MongoDB 설치

(2) 빈을 경로에 추가

(3) c : \ data \ db 생성

(4) c : \ data \ log를 만듭니다.

(5) 내용으로 c : \ data \ mongod.cfg를 만듭니다.

systemLog:
    destination: file
    path: c:\data\log\mongod.log
storage:
    dbPath: c:\data\db

(6) 재부트시 자동 시작되는 서비스를 생성하려면 .. RUN AS ADMIN ..

sc.exe create MongoDB binPath= "\"C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe\" --service --config=\"C:\data\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"

(7) 서비스 시작 .. RUN AS ADMIN ..

net start MongoDB

중요 : 'MongoDB 서비스가 성공적으로 시작되었습니다'라고해도 실패 할 수 있습니다

제어판> 서비스를 다시 확인하려면 MongoDB 서비스의 상태가 '실행 중'인지 확인하십시오.

그렇지 않은 경우 C : \ data \ log \ mongod.log의 로그 파일에서 실패 이유를 확인하고 수정하십시오.

(제어판> 서비스를 통해 MongoDB를 시작하지 마십시오. .. net start MongoDB를 사용하십시오)

(8) 마지막으로 MongoDB를 실행하여 컴퓨터를 다시 시작하면 다시 시작해도 계속 실행됩니다.

당신이 그것을 죽이고 싶은 경우에 ..

net stop MongoDB

sc.exe delete MongoDB

그것은 나를 위해 일한 덕분에, 나는 이 명령에서 버전 으로 변경 3.4해야 3.6했습니다sc.exe create MongoDB binPath= "\"C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe\" --service --config=\"C:\data\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"
guru_007

28

아래 단계는 Windows에 적용됩니다.

관리자로 아래에서 실행 cmd

mongod --remove

기존 MongoDB 서비스 (있는 경우)가 제거됩니다.

mongod --dbpath "C:\data\db" --logpath "C:\Program Files\MongoDB\Server\3.4\bin\mongod.log" --install --serviceName "MongoDB"

C:\data\db폴더가 존재 하는지 확인하십시오

오픈 서비스 :

services.msc

MongoDB 찾기 -> 마우스 오른쪽 버튼 클릭-> 시작


1
완전한! 참고로, 폴더는 존재해야합니다 (적어도 로그 용 폴더).
Diego Jancic

부가 정보에 관한 사소한 질문 : 파일도 존재할 필요는 없습니까? 나는 (빈) 파일 자체가 없다는 것을 모호하게 기억할 수 있습니다.
Fariz Fakkel

1
완벽한 솔루션.
sapatelbaps

21

mongodb를 Windows 서비스로 실행하기 위해 아래 명령을 사용할 수 있습니다

"C:\mongodb\bin\mongod" --bind_ip  yourIPadress  --logpath  "C:\data\dbConf\mongodb.log"  --logappend  --dbpath  "C:\data\db"  --port yourPortNumber --serviceName "YourServiceName" --serviceDisplayName "YourServiceName" --install 

mongodb를 기본 매개 변수와 함께 사용하면 다음 값을 사용할 수 있습니다.

  • yourIPadress : 127.0.0.1 또는 localhost
  • yourPortNumber : 27017 (기본 포트) 또는 --port를 넣지 마십시오
  • serviceDisplayName : 하나 이상의 서비스를 실행하는 경우에만 (mongodb 1.8부터)

이 명령에 대한 자세한 정보는 여기에 있습니다

http://www.mongodb.org/display/DOCS/Windows+Service



14

이 PowerShell 스크립트는 MongoDB를 Windows 서비스로 다운로드 및 설치합니다.

Set-ExecutionPolicy RemoteSigned

$mongoDbPath = "C:\MongoDB" 
$mongoDbConfigPath = "$mongoDbPath\mongod.cfg"
$url = "http://downloads.mongodb.org/win32/mongodb-win32-x86_64-2008plus-2.4.9.zip" 
$zipFile = "$mongoDbPath\mongo.zip" 
$unzippedFolderContent ="$mongoDbPath\mongodb-win32-x86_64-2008plus-2.4.9"

if ((Test-Path -path $mongoDbPath) -eq $True) 
{ 
  write-host "Seems you already installed MongoDB"
    exit 
}

md $mongoDbPath 
md "$mongoDbPath\log" 
md "$mongoDbPath\data" 
md "$mongoDbPath\data\db"

[System.IO.File]::AppendAllText("$mongoDbConfigPath", "dbpath=C:\MongoDB\data\db`r`n")
[System.IO.File]::AppendAllText("$mongoDbConfigPath", "logpath=C:\MongoDB\log\mongo.log`r`n")
[System.IO.File]::AppendAllText("$mongoDbConfigPath", "smallfiles=true`r`n")
[System.IO.File]::AppendAllText("$mongoDbConfigPath", "noprealloc=true`r`n")

$webClient = New-Object System.Net.WebClient 
$webClient.DownloadFile($url,$zipFile)

$shellApp = New-Object -com shell.application 
$destination = $shellApp.namespace($mongoDbPath) 
$destination.Copyhere($shellApp.namespace($zipFile).items())

Copy-Item "$unzippedFolderContent\*" $mongoDbPath -recurse

Remove-Item $unzippedFolderContent -recurse -force 
Remove-Item $zipFile -recurse -force

& $mongoDBPath\bin\mongod.exe --config $mongoDbConfigPath --install

& net start mongodb

10

이것이 나를 위해 일한 유일한 것입니다. 모든 것이 절대적인 길이어야했기 때문에 :

C:\Program Files\MongoDB\Server\3.2\bin>mongod --install --dbpath=c:/data/db --logpath=c:/data/logs/log.txt

나는 또한 그것을 실행해야했다 admin cmd


7

권장되는 방법 mongod --install으로 오류가 발생합니다.

2015-12-03T18:18:28.896+0100 I CONTROL  --install has to be used with a log file for server output

mongodb를 설치 한 후 C:\mongodb간단히 logpath를 추가해야합니다.

mongod --install --logpath C:\mongodb\logs\mongo.log

로그 파일의 경로가 존재해야하며 절대 Windows 경로 여야합니다. 그런 다음 다음을 입력하여 MongoDB 서비스를 시작하십시오.

net start MongoDB

5

사용을 고려하십시오

mongod --install --rest --master

루비의 답변으로 답변을 업데이트하십시오 (불완전한 답변)
danielpopa

5

Mongo DB 작업 : 3.6

(1) MongoDB 설치

(2) 환경 경로 변수에 빈 추가

(3) 작성 c:\data\db

(4) 작성 c:\data\mongod.log

(5) bin폴더에서 Command 실행

. \ mongod.exe --install --logpath c : \ data \ mongod.log --logappend --bind_ip 12 7.0.0.1 --dbpath c : \ data \ db

(6) mongo db를 서비스로 시작하려면

인터넷 스타트 MongoDB

(7) 마지막으로 mongomongo shell이 ​​열려 있는지 확인하기 위해 명령 줄에서 실행하십시오.


4
1) echo logpath=F:\mongodb\log\mongo.log > F:\mongodb\mongod.cfg

2) dbpath=F:\mongodb\data\db [add this to the next line in mongod.cfg]

C:\>F:\mongodb\bin\mongod.exe config F:\mongodb\mongod.cfg install

참고


4

이것이 나를 위해 일한 것입니다.

sc.exe create MongoDB binPath= "d:\MongoDB\bin\mongod.exe --service --config=d:\MongoDB\bin\mongod.config" displayname= "MongoDB 2.6 Standard" start= "auto"

Mongo 설명서에 설명 된 것처럼 binPath를 탈출하지 못했습니다.

실패한:

sc.exe create MongoDB binPath= "\"C:\Program Files\MongoDB 2.6 Standard\bin\mongod.exe\" --service --config=\"C:\Program Files\MongoDB 2.6 Standard\mongod.cfg\"" DisplayName= "MongoDB 2.6 Standard" start= "auto"

1
cmd를 관리자 권한으로 실행하고 다음 명령을 실행하십시오. sc.exe create MongoDB binPath = "d : \ MongoDB \ bin \ mongod.exe --service --config = d : \ MongoDB \ bin \ mongod.config"displayname = "MongoDB 2.6 표준 "start ="auto "
Akash5288

4

가장 간단한 방법은

  1. 폴더 만들기 C:\data\db
  2. 파일 작성 C:\data\db\log.txt
  3. "관리자 권한으로 실행"으로 명령 프롬프트를 열고 mogodb bin 디렉토리 경로가 올바른지 확인하십시오.

    C:\Program Files\MongoDB\Server\3.4\bin> mongod.exe --install mongod --dbpath="c:\data\db" --logpath="c:\data\db\log.txt" 
  4. mongodb 서비스를 시작하십시오.

    net run MongoDB

'C : \ Program'은 내부 또는 외부 명령, 실행 가능한 프로그램 또는 배치 파일로 인식되지 않습니다.
151291

4

MongoDB 3.4에서 작업하기 [Windows]

  • C : / mongodb / data 디렉토리 작성
  • 이 구성을 사용하여 C : /mongodb/mongodb.config에 파일을 작성하십시오.

    storage:
        engine: wiredTiger
        dbPath: "C:/mongodb/data"
        directoryPerDB: true
        journal:
            enabled: true
    systemLog:
        destination: file
        path: "C:/mongodb/data/mongod.log"
        logAppend: true
        timeStampFormat: iso8601-utc
    net:
        bindIp: 127.0.0.1
        port: 27017
        wireObjectCheck : false
  • MongoDb를 서비스로 설치하려면 admin power를 사용하여 powershell에서이 명령을 실행하십시오.

    mongod --config = "C : \ mongodb \ mongodb.config"--install --service

  • Services.msc를 열고 MongoDb를 찾은 다음 시작하십시오.


3

버전 2.4.3 (게시일 현재 버전)의 경우 구성 파일을 작성한 후 다음을 실행하십시오.

C:\MongoDB\bin\mongod.exe --config C:\MongoDB\mongod.cfg --service


3

현재 (버전 2.4.4까지) 경로 (dbpath / logpath / config)에 공백이 있으면 서비스가 시작되지 않고 "서비스가 제어 기능에 응답하지 않습니다"라는 오류가 표시됩니다.


2

버전 2.4.9에 있으며 구성 파일을 사용하고 있습니다. 구성 파일에서 등호를 공백으로 묶어야 서비스가 시작됩니다.

dbpath = D:\Mongo data
logpath = C:\mongodb\logs\mongo.log 
logappend = true

원래 나는 가지고 있었다 :

logpath=C:\mongodb\logs\mongo.log 

또한 서비스를 설치할 때 구성 파일의 절대 경로를 사용해야한다는 것을 발견했습니다.

c:\mongodb\bin\>mongodb.exe C:\mongodb\bin\mongod.conf --install

공백이 있는 dbpath 주위에 쉼표를 뒤집어 놓으려고 유혹하지 마십시오 . net start MongoDB 를 실행하면 서비스가 시작된 것처럼 보이지만 종료됩니다. 서비스가 실제로 시작되었음을 확인하려면 로그 파일을 확인하십시오.


2

"cmd.exe"를 관리자로 실행 한 다음 "sc.exe"를 실행하여 새 Windows 서비스를 추가하십시오.

예를 들면 다음과 같습니다.

sc.exe create MongoDB binPath= "c:\program files\mongodb\server\3.2\bin\mongod.exe"

2

installpath를 사용하여 dbpath, config 및 logfile을 mongod에게 전달해야한다는 것을 알았습니다.

예 :

mongod --dbpath=c:\data\db --config=c:\data\db\config.cfg --logpath=c:\data\db\log.txt --install 

참고 : 경로 변수에 mongod 경로가 있습니다.

다음을 사용하여 서비스를 제어 할 수 있습니다.

net start mongodb
net stop  mongodb 

2

다음은 MongoDB를 Windows 서비스로 설치하는 단계입니다.

  1. 예를 들어 로그 디렉토리를 만듭니다. C:\MongoDB\log

  2. 예를 들어 db 디렉토리를 만듭니다. C:\MongoDB\db

  3. 다음 줄로 구성 파일 준비

    dbpath=C:\MongoDB\db

    logpath=C:\MongoDB\log

    이름이 mongod.cfg 인 구성 파일을 "C : \ MongoDB \"폴더에 배치하십시오.

  4. 다음 명령은 Windows 서비스를 sc.exe create MongoDB binPath= "\"C:\MongoDB\Server\3.4\bin\mongod.exe\" --service --config=\"C:\MongoDB\mongod.cfg\" DisplayName= "MongoDB 3.4" start= "auto"

  5. 이 명령을 실행하면 [SC] CreateService SUCCESS

  6. 명령 프롬프트에서 다음 명령을 실행하십시오.

    net start MongoDB



1

이 답변은 MSI 설치 프로그램을 사용하여 mongo DB를 이미 설치 한 사용자를위한 것입니다.

기본 설치 위치가 "C : \ Program Files \ MongoDB \ Server \ 3.2 \ bin"이라고 가정합니다.

몽고를 창 서비스로 실행하는 단계

  1. 관리자 권한으로 명령 프롬프트 열기
  2. 입력하십시오 cd C:\Program Files\MongoDB\Server\3.2\bin(3.2가 아닌 다른 버전이 설치되어있을 수 있으므로 경로를 올바르게 확인하십시오).
  3. 엔터 키를 치시오
  4. 유형 net start MongoDB
  5. 엔터 키를 치시오
  6. Windows + R을 누르고 services.mscMongo가 서비스로 실행 중인지 입력 하고 확인하십시오.

올바른 경로를 가지고 있지만 오류가 발생했습니다 : System error 2 has occurred. The system cannot find the file specified.mongod, mongodb도 시도했습니다.
151291

0
mongod --config "C:\Program Files\MongoDB\Server\3.6\mongod_primary.cfg" --install --serviceName "MongoDB_Primary" --serviceDisplayName "MongoDB Primary"

0
  1. 윈도우 서비스 확인

    mongo 서비스가있는 경우 bellow 명령을 실행하여 제거하십시오.
    mongod --remove

  2. 다음 내용으로 mongo.cfg 파일 만들기

    systemLog :
    대상 : 파일
    경로 : c : \ data \ log \ mongod.log
    스토리지 :
    dbPath : c : \ data \ db

    경로 : 로그 데이터를 저장하려는 위치
    dbPath : 데이터베이스 디렉토리

  3. 그런 다음 벨로우즈 명령을 실행하십시오.

    sc.exe create MongoDB binPath= "\"C:\Program Files\MongoDB\Server\3.2\bin\mongod.exe\" --service --config=\"C:\Program Files\MongoDB\Server\3.2\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"

    binPath : mongodb 설치 디렉토리
    구성 : .cfg 파일 주소
    DisplayName : 서비스 이름

  4. 서비스를 시작하다

    net start MongoDB

이제 모든 일이 끝났습니다. 즐기세요


0

필자의 경우 다음 내용으로 mongd.exe 옆에 mongod.cfg를 만듭니다.

# mongod.conf

# for documentation of all options, see:
#   http://docs.mongodb.org/manual/reference/configuration-options/

# Where and how to store data.
storage:
  dbPath: D:\apps\MongoDB\Server\4.0\data
  journal:
    enabled: true
#  engine:
#  mmapv1:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path:  D:\apps\MongoDB\Server\4.0\log\mongod.log

# network interfaces
net:
  port: 27017
  bindIp: 0.0.0.0


#processManagement:

#security:

#operationProfiling:

#replication:

#sharding:

## Enterprise-Only Options:

#auditLog:

#snmp:

그런 다음 두 명령을 실행하여 서비스를 만듭니다.

D:\apps\MongoDB\Server\4.0\bin>mongod --config D:\apps\MongoDB\Server\4.0\bin\mongod.cfg --install

D:\apps\MongoDB\Server\4.0\bin>net stop mongodb
The MongoDB service is stopping.
The MongoDB service was stopped successfully.


D:\apps\MongoDB\Server\4.0\bin>mongod --remove
2019-04-10T09:39:29.305+0800 I CONTROL  [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2019-04-10T09:39:29.309+0800 I CONTROL  [main] Trying to remove Windows service 'MongoDB'
2019-04-10T09:39:29.310+0800 I CONTROL  [main] Service 'MongoDB' removed

D:\apps\MongoDB\Server\4.0\bin>
D:\apps\MongoDB\Server\4.0\bin>sc.exe create MongoDB binPath= "\"D:\apps\MongoDB\Server\4.0\bin\mongod.exe\" --service --config=\"D:\apps\MongoDB\Server\4.0\bin\mongod.cfg\""
[SC] CreateService SUCCESS

D:\apps\MongoDB\Server\4.0\bin>net start mongodb
The MongoDB service is starting..
The MongoDB service was started successfully.

D:\apps\MongoDB\Server\4.0\bin>

다음은 정확하지 않습니다. 이스케이프 된 따옴표가 필요합니다.

D:\apps\MongoDB\Server\4.0\bin>sc.exe create MongoDB binPath= "D:\apps\MongoDB\Server\4.0\bin\mongod --config D:\apps\MongoDB\Server\4.0\bin\mongod.cfg"
[SC] CreateService SUCCESS

D:\apps\MongoDB\Server\4.0\bin>net start mongodb
The service is not responding to the control function.

More help is available by typing NET HELPMSG 2186.


D:\apps\MongoDB\Server\4.0\bin>

-1

Plz는 Mongo DB : 3.6 및 Windows 10의 단계를 시도합니다

  1. mongod --remove
  2. mongod --dbpath=C:/data/db --port 27017 --logpath C:/data/log/log.txt --service
  3. mongod --dbpath=C:/data/db --port 27017 --logpath C:/data/log/log.txt --install
  4. net start MongoDB

MongoDB 4.0은 Windows 64 비트에서 정상적으로 실행됩니다. mongod.cfg의 "Security"설정에 "authorization : enabled"행을 추가하여 보안을 시도하지 않는 한. 그런 다음 "서비스가 적시에 시작되지 않았습니다"라는 오류 메시지가 표시됩니다. 여기서 무슨 일이 일어나고 있는지 아십니까?
David Edwards
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.