Node.jsで暗号資産アービトラージ

ビットコイントレード中心にNode.jsで実際に作るためのレシピ

MongoDBの起動・停止方法と「ERROR: child process failed, exited with error number 100」の対処法

※この記事は2019/10/12に更新されました。

Linusサーバ(またはMacOS)でのMongoDBの起動、停止方法を解説します。
「ERROR: child process failed, exited with error number 100」が出た時の対処法についても解説します。

MongoDB(データベース)の起動方法

LinusサーバでのMongoDB(データベース)の起動方法はフロントで起動させる方法とバックグラウンドで起動させる方法の2種類あります。

バックグラウンド起動の利用が便利です。

MongoDBのデータベース起動(フロント起動)

フロント起動の場合のコマンドは以下です。

ターミナルが操作できなくなるので、別のターミタルを立ち上げてDB操作等のコマンドを実行します。

sudo mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb.log

下の画像のようにコマンド操作はできなくなります。

フロント起動

「--dbpath」にはMongoDBのデータベースの格納場所のパス、「--logpath」にはログの格納場所を指定します。

データベースのパスを間違えると全く別のデータのデータベースが起動してしまうので、起動コマンドはテキストエディタ等に残しておきましょう。

MongoDBのデータベース起動(バックグラウンド起動)

バックグラウンド起動のコマンドは以下です。

sudo mongod --fork --dbpath /var/lib/mongo --logpath /var/log/mongodb.log

「--fork」オプションでバックグラウンドで起動するので同一のターミナルで操作ができます。

MongoDB起動後のDB操作の流れ

ターミナル上でmongoコマンドを使ってMongoDBにアクセスします。

use (データベース名)でデータベースに接続できます。

//mongoコマンドでMongoDBに接続
mongo

//use(データベース名)でデータベースに接続
use databaseA

MongoDB(データベース)を停止する

MongoDBを停止する方法はMongoDB上でシャットダウンコマンドをたたく方法、Linuxサーバ上でプロセスをkillする方法があります。

(Linuxサーバの再起動やシャットダウンでもMongoDBは停止します)

MongoDBシャットダウンコマンドで停止する

MongoDBシャットダウンコマンドでMongoDBを停止することができます。

mongoコマンドでMongoDBに接続し、adminユーザでdb.shutdownServer()を実行することでMongoDBは停止します。

mongo
use admin
db.shutdownServer()
exit

Linuxサーバ上でプロセスをkillする

Linuxサーバ上でプロセスをkillするにはpgrepを利用します。

pgrepでmongoのプロセスIDを取得して、killコマンドで停止します。

pgrep mongo
sudo kill xxxxx

起動エラーの対処法(ERROR: child process failed, exited with error number 100)

MongoDB起動時に「ERROR: child process failed, exited with error number 100」が発生した場合の対処法です。

発生条件

「--fork」オプションで起動(バックグラウンド起動)させた際に「--dbpath」のパスが誤っていると発生します。

sudo mongod --fork --dbpath /var/lib/mongodb --logpath /var/log/mongodb.log

「--logpath」のパスが誤っていた場合はerror number 1となります。

/etc/mongod.conf(個人アカウントの場合、/usr/local/etc/mongod.conf)から正しいdbPathを確認できます。

下の画像はmongod.confをcatした場合の出力結果です。

mongo.conf

まとめ

MongoDBの起動方法として、フロント起動、バックグラウンド起動を紹介しました。

MongoDBは--dbpathでデータベースの保存場所を指定することができますが、パスが存在しなければエラーとなります。

参考記事

この記事ではセキュリティには触れませんでしたが、MongoDBはポート番号を変更する等のセキュリティ設定が望ましいです。

MongoDBのセキュリティは以下にまとめています。

www.kennejs.com