Windowsサービスとして実行できるようにMongoDBを設定するにはどうすればよいですか?
Windowsサービスとして実行できるようにMongoDBを設定するにはどうすればよいですか?
回答:
あなたがそれを実行すると --install
コマンドラインスイッチで Windowsサービスとしてインストールされる。
mongod --install
最初にこのスレッドを読む価値があるかもしれません。関連するレジストリキーが書き込まれるときに、相対パス/絶対パスにいくつかの問題があるようです。
net start MongoDB
数時間やってみてようやくやった。
<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 MongoDB
PowerShell)からサービスを開始しようとすると、次のような応答が返されます。
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
net start MongoDB
を使用する代わりに、で開始することもできservices.msc
ます。(mongod
私にそれをお勧めします。)
だけでなく--install
、
また必要--dbpath
と--logpath
OSを再起動した後、手動で「mongod.lock」を削除する必要があります
mongod.lock
バグは私に修正されているようですWindows 8 x64
他の回答とは異なり、これは..
システムの再起動時にサービスを自動的に開始/再起動
(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"
以下の手順は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を検索->右クリック->開始
以下のコマンドを使用して、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を使用する場合、次の値を使用できます。
このコマンドの詳細はこちらです
私はすべての答えを試し、次にhttps://docs.mongodb.org/manual/tutorial/install-mongodb-on-windows/#configure-a-windows-service-for-mongodb-community-editionが説明する方法でそれを行いました。
設定ファイルを使用...
"C:\mongodb\bin\mongod.exe" --config "C:\mongodb\mongod.cfg" --install
この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
これは私のために働いた唯一のものでした。すべてが絶対パスでなければならなかったので:
C:\Program Files\MongoDB\Server\3.2\bin>mongod --install --dbpath=c:/data/db --logpath=c:/data/logs/log.txt
私もそれを実行する必要がありました admin cmd
推奨される方法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
追加するだけです。
mongod --install --logpath C:\mongodb\logs\mongo.log
ログファイルへのパスは存在している必要があり、Windowsの絶対パスである必要があります。次に、次のように入力してMongoDBサービスを開始します。
net start MongoDB
Mongo DBでの作業:3.6
(1)MongoDBをインストールする
(2)環境パス変数にビンを追加する
(3)作成 c:\data\db
(4)作成 c:\data\mongod.log
(5)以下のコマンドをbin
フォルダーで実行します
。\ 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)最後mongo
にコマンドラインで実行して、mongoシェルが開いているかどうかを確認します。
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
これは私のために働いたものです:
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"
最も簡単な方法は、
C:\data\db
C:\data\db\log.txt
「管理者として実行」としてコマンドプロンプトを開き、mogodb binディレクトリパスが正しいことを確認して、
C:\Program Files\MongoDB\Server\3.4\bin> mongod.exe --install mongod --dbpath="c:\data\db" --logpath="c:\data\db\log.txt"
mongodbサービスを開始します。
net run MongoDB
MongoDB 3.4での作業[Windows]
次の構成を使用して、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をサービスとしてインストールするには、Powershellでこのコマンドを管理者権限で実行します
mongod --config = "C:\ mongodb \ mongodb.config" --install --service
Services.mscを開き、MongoDbを探して起動します。
私はバージョン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を実行するとサービスが開始されているように見えますが、サービスは終了します。ログファイルをチェックして、サービスが実際に開始されたことを確認します。
以下は、MongoDBをWindowsサービスとしてインストールする手順です。
ログディレクトリを作成します。 C:\MongoDB\log
たとえば、dbディレクトリを作成します。 C:\MongoDB\db
次の行で構成ファイルを準備します
dbpath=C:\MongoDB\db
logpath=C:\MongoDB\log
mongod.cfgという名前の設定ファイルをフォルダ「C:\ MongoDB \」に配置します
次のコマンドを実行すると、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"
このコマンドを実行すると、 [SC] CreateService SUCCESS
コマンドプロンプトで次のコマンドを実行します
net start MongoDB
管理者コマンドプロンプトからのMSIダウンロードを使用してMongoDB 2.6.1以降をインストールする場合、サービス定義が自動的に作成されます。
MongoDBのドキュメントには、必要に応じてWindowsサービス定義を手動で作成するのに役立つチュートリアルもあります。
この回答は、MSIインストーラーを使用してmongo DBをすでにインストールしている人を対象としています。
デフォルトのインストール場所が「C:\ Program Files \ MongoDB \ Server \ 3.2 \ bin」だとします
mongoをウィンドウサービスとして実行する手順
cd C:\Program Files\MongoDB\Server\3.2\bin
(3.2ではなく異なるバージョンがインストールされている可能性があるため、パスを正しく確認してください)。net start MongoDB
services.msc
し、Mongoがサービスとして実行されているかどうかを確認します。System error 2 has occurred. The system cannot find the file specified.
mongod、mongodbも試しました。
mongod --config "C:\Program Files\MongoDB\Server\3.6\mongod_primary.cfg" --install --serviceName "MongoDB_Primary" --serviceDisplayName "MongoDB Primary"
Windowsサービスを確認する
mongoのサービスがある場合は、次のコマンドを実行して削除します。
mongod --remove
以下の内容でmongo.cfgファイルを作成します
systemLog:
宛先:ファイル
パス:c:\ data \ log \ mongod.log
ストレージ:
dbPath:c:\ data \ db
パス:ログデータを保存する
場所dbPath:データベースディレクトリ
次に以下のコマンドを実行します
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インストールディレクトリ
config:.cfgファイルアドレス
DisplayName:Your Service Name
サービスを開始
net start MongoDB
今、すべてが行われます。楽しんで
私の場合、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:
次に、2つのコマンドのいずれかを実行してサービスを作成します。
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>
PlzはMongo DB:3.6とWindows 10の手順を試します
mongod --remove
mongod --dbpath=C:/data/db --port 27017 --logpath C:/data/log/log.txt --service
mongod --dbpath=C:/data/db --port 27017 --logpath C:/data/log/log.txt --install
net start MongoDB