WSL (Ubuntu 16.04 TLS) に、MongoDB をインストールする手順について説明します。
1. インストール手順
基本的には、Install MongoDB Community Edition on Ubuntu — MongoDB Manual に書いてある通りに進めます。
(1) インストールするパッケージを認証するためのキーをインポートします。
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
(2) パッケージ管理システムである APT の設定ファイルに、今回使用するレポジトリの情報を書き込みます。
$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
(3) ローカルのパッケージデータベースを更新します。
$ sudo apt-get update
(4) MongoDB のパッケージ mongodb-org をインストールします。
$ sudo apt-get install -y mongodb-org
2. MongoDB を起動する
(1) root 以外のユーザーで MongoDB を起動する場合は、以下のディレクトリのパーミッションを変更しておきます。
$ sudo chmod 777 /var/lib/mongodb
$ sudo chmod 777 /var/log/mongodb
(2) MongoDB (サーバープログラム) を起動します。
$ sudo mongod --fork --config /etc/mongod.conf
--fork
オプションを指定したことにより、MongoDB がバックグラウンドで稼働します。フォアグラウンドでよいなら、このオプションは必要ありません。
service
コマンドでサービスを操作することができないようです。そのため、ここでは mongod
コマンドを直接実行しています。Ubuntu が提供している mongodb パッケージであれば、
service
コマンドでサービスを操作することができるようです。
こちらで議論されていました。
Install MongoDB in Windows Linux Subsystem · Issue #796 · Microsoft/WSL · GitHub
3. MongoDB に接続する
MongoDB のクライアントプログラムを実行します。
$ mongo
MongoDB に接続できていれば、例えば以下のようなコマンドに対して結果を返してくれるはずです。
> db.version()
4.0.0
> show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
4. MongoDB を終了させる
フォアグラウンドで起動した mongod を終了させるには、Ctrl + C キーを押して SIGINT シグナルを送ればよいのですが、バックグラウンドで稼働している MongoDB (mongodプログラム) を終了させる場合は、まず ps
コマンドで該当するプロセスの番号を調べます。PID という列です。
$ ps aux | grep -E '(%MEM|mongod)' | grep -v grep
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 17241 0.3 0.3 1018112 41924 ? Sl 16:18 0:02 mongod --fork --config /etc/mongod.conf
※ ps
コマンドは稼働しているプロセス一覧を表示しますが、この一覧の中の「タイトル行も出力したい」「今実行した grep
コマンドは出力させたくない」という2つを合わせて実現するために、grep
コマンドの指定方法が少し複雑になっています。
ここでは、「17241」となっています。
kill
コマンドで、この番号のプロセスを終了させます。
$ sudo kill 17241