Ubuntu 16.04のソフトウェアセンターからMongoDBをインストールしました。
mongodb 1:2.6.10-0ubuntu1
this には現在MongoDB 2.6.10が含まれていると思います。
Apache2 localhostセットアップでアプリケーションを実行していますが、システムが起動するたびにmongod
を手動で起動する必要があります。
mongod
自動的に開始したい。
これを行うには、主に2つの方法があります。
update-rc.d mongodb defaults
from: https://askubuntu.com/a/89914/367134
結果:
update-rc.d mongodb defaults
insserv: fopen(.depend.stop): Permission denied
しかし、これはエラーを生成しませんでした:
Sudo update-rc.d mongodb defaults
「MongoDB構成ファイル」を編集するための参照もいくつか見ましたが、複数の場所にある構成ファイルを見ることができるため、これが何を指しているのかわかりません。
/etc/mongodb.conf
/etc/init/mongodb.conf
/etc/init.d/mongodb
そして、一度正しいファイルに入れたら、そこで何を変更すればよいかわかりません。
/etc/init/mongodb.conf
で次を確認できます。
start on runlevel [2345]
stop on runlevel [!2345]
16.04のシステム起動時にmongod
が起動するようにする正しい方法は何ですか?
私は this を読んでおり、/etc/rc2.d
を見て、以下を見ることができます:
S01mongodb@ --> /etc/init.d/mongodb
更新:
提案を実行した後:
Sudo systemctl enable mongodb
その後、再起動して、systemctl status mongodb
を実行すると以下が返されます。
* mongodb.service - An object/document-oriented database
Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2016-04-18 23:42:28 AEST; 7min ago
Docs: man:mongod(1)
Process: 655 ExecStart=/usr/bin/mongod --config /etc/mongodb.conf (code=exited, status=100)
Main PID: 655 (code=exited, status=100)
Apr 18 23:42:27 me-comp systemd[1]: Started An object/document-oriented database
Apr 18 23:42:28 me-comp systemd[1]: mongodb.service: Main process exited, code=exited, status=100/n/a
Apr 18 23:42:28 me-comp systemd[1]: mongodb.service: Unit entered failed state.
Apr 18 23:42:28 me-comp systemd[1]: mongodb.service: Failed with result 'exit-code'.
許可のトラブルシューティング
/var/lib/mongodb
= drwxr-xr-x mongodb mongodb
。/var/log/mongodb
= drwxr-xr-x mongodb mongodb
。/var/log/mongodb/mongodb.log
= -rw-r--r-- mongodb nogroup
。/var/log/mongodb/mongod.log
= -rw-r--r-- mongodb mongodb
。/data/db/mongod.lock
= -rwxrwxr-x me me
および0バイト。/data
= drwxr-xr-x root root
。/data/db
= drwxr-xr-x me root
。
設定ファイルの内容
/etc/mongodb.conf
:
# Where to store the data.
dbpath=/var/lib/mongodb
#where to log
logpath=/var/log/mongodb/mongodb.log
logappend=true
bind_ip = 127.0.0.1
#port = 27017 ...
インストール中
これは私が最終的に使用した方法です(ユーザーAdam Cのコメントre:より多くの最新バージョンのmongodbを使用)。それは私のために働いたが、私は問題に関する権威ではない。
https://askubuntu.com/a/757385/367134
次に、サービスファイルを作成する必要がありました。
https://askubuntu.com/a/694226/367134
そして、そのサービスファイルのパスを次から編集します。
/etc/mongodb.conf
に:
/etc/mongod.conf
そして、システムの起動時にmongodbを起動します:
Sudo systemctl enable mongodb
見る:
現在、mongodbは16.04システムの起動時に起動しています。
古いMongoDBのアンインストール
前しかし、私は既存のインストールとディレクトリを削除する必要がありましたが、これは好きでした(主に https://askubuntu.com/a/497144/367134 ):
# go to /etc/apt/sources.list.d and remove any mongodb lists, then:
# sanity check - see what is installed
Sudo dpkg -l | grep mongo
# remove all packages
Sudo apt-get remove mongodb* --purge
Sudo apt-get autoremove
# remove old directories
Sudo rm -r -f /var/lib/mongodb/
Sudo rm -r -f /var/log/mongodb/
私にとっては、dbパスの許可が間違っているためです。ただ
chown mongodb:mongodb /var/lib/mongodb
開発中に、逆の場合もある場合があります。1つのグローバルインストールではなく、個別に起動する複数のローカルで分離可能なインスタンスを用意する...
mongod --dbpath ./mongo_db_data/ --logpath ./mongo_logs/mongodb.log --port 12345
私にとってはSudo systemctl enable mongod