こんにちわlisです!
WSLにMongoDBをセットアップしてみました!
MongoDBのインストールと設定
インストールするにはこれらのコマンドが必要です。
$ curl -fsSL https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add - OK $ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse $ sudo apt update $ sudo apt install mongodb-org
どうやらaptで取ってくる既存の情報ではインストールができないため、接続先を追加してインストールする感じのようです。
MongoDBの初回設定
MongoDBが使用するデフォルトのパスはこの2つ
項目 | 内容 |
---|---|
/var/log/mongodb | ログファイル |
/var/lib/mongodb/ | データ(DB)置き場 |
このパスをそのまま使いたい場合、これらのパーミッションを777
に設定します。
$ sudo chmod 777 /var/log/mongodb /var/lib/mongodb/
他のパスにしたい場合は、それぞれ用意してあげて、パーミッションを777
に設定します。
自分のホーム下に置く例です。
$ mkdir ~/mongodb $ mkdir ~/mongodb/log $ touch ~/mongodb/log/mongodb.log $ mkdir ~/mongodb/db $ chmod 777 ~/mongodb/log/mongodb.log ~/mongodb/db
この2つを設定ファイルで指定してあげます。
sudo
で起動することを忘れずに。
sudo vim /etc/mongod.conf
この2つにそれぞれ作成したパスを設定しましょう!
# データ(DB)置き場を指定 storage: dbPath: /home/user/mongodb/db # ログファイルを指定 systemLog: path: /home/user/mongodb/log/mongodb.log
これで保存すればOK!
MongoDBの起動
バックグラウンドでサーバを起動しておきます。
$ mongod --config /etc/mongod.conf &
これでmongo
コマンドが使えるようになります!
バージョン表示をしてみましょう。
$ mongo --version MongoDB shell version v4.4.5 Build Info: { "version": "4.4.5", "gitVersion": "ff5cb77101b052fa02da43b8538093486cf9b3f7", "openSSLVersion": "OpenSSL 1.1.1f 31 Mar 2020", "modules": [], "allocator": "tcmalloc", "environment": { "distmod": "ubuntu2004", "distarch": "x86_64", "target_arch": "x86_64" } }
設定エラー(FileNotOpen)
起動時にこんなエラーが出たことがありました。
{"t":{"$date":"2021-04-12T00:00:00.000Z"},"s":"F", "c":"CONTROL", "id":20574, "ctx":"main","msg":"Error during global initialization","attr":{"error":{"code":38,"codeName":"FileNotOpen","errmsg":"Failed to open /home/user/${HOME}/mongodb/log/mongodb.log"}}}
「設定したファイルが開けないよ!」と言っているようです。
このとき設定したパスはこうでした。
path: ~/mongodb/log/mongodb.log
このパス設定方法だと、こう読み取ってしまうらしくエラーしてしまうようです。
/home/user/~/mongodb/log/mongodb.log
環境変数を使ってみても……
path: ${HOME}/mongodb/log/mongodb.log
こうなります。
/home/user/${HOME}/mongodb/log/mongodb.log
なのでhome
下のフォルダなどを使用する場合はフルパスにしましょう!
/home/user/mongodb/log/mongodb.log
MongoDB自動起動
今のままだと毎回バックグラウンドで「サーバを起動→使い始める」としないとMongoDBが使えません。
なので~/.bashrc
に
mongod --config /etc/mongod.conf &
を追加して自動起動するようにしました。
参考
コチラを参考にしました。ありがとうございました!
あとがき
MongoDBをWSLにセットアップでした!
ちょっとしたエラーにも遭遇しましたが、そんなに労せずセットアップできました。