Ubuntu16.04にMongoDB3.4をインストールする手順をお伝えいたします。

環境

今回の作業環境を確認しておきます。また、以下の作業はすべてターミナルにて行っております。

Ubuntuのバージョン


$ cat /etc/lsb-release

DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=16.04
DISTRIB_CODENAME=xenial
DISTRIB_DESCRIPTION="Ubuntu 16.04.3 LTS"

MongoDBのインストール

ここからは、実際にMongoDBをインストールする方法について見ていきます。
インストールする方法は、aptで管理できるように設定した後、aptでインストールします。

パッケージ管理システムで使うパブリックキーを登録

次のコマンド、MongoDBの公開GPGキーを登録します。


$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

利用可能なパッケージ一覧にMongoDBを登録

MongoDBをインストールするUbuntuのバージョンに合わせて、次のどれかのコマンドを実行します。

Ubuntu 12.04


$ echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

Ubuntu 14.04


$ echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

Ubuntu 16.04


$ echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

パッケージデータベースを更新

次のコマンドで、パッケージデータベースを更新します。


$ sudo apt-get update

MongoDBパッケージをインストール

次のコマンドでMongoDBをインストールします。


$ sudo apt-get install mongodb-org

MongoDBの開始と停止

MongoDBの開始および停止、再起動のコマンドは次のようになります。

MongoDBの開始


$ sudo service mongod start

MongoDBの停止


$ sudo service mongod stop

MongoDBの再起動


$ sudo service mongod restart

MongoDBの確認

MongoDBのインストールが完了しましたら、確認しておきます。次のコマンドでMongoDBに接続します。
これは、まだデータベースやユーザーを登録していないので、これらの省略形になります。


$ mongo

もし、MongoDBを開始していない場合は、次のように表示されて接続が失敗しますので、改めて「sudo service mongod start」コマンドでMongoDBを開始しておきます。


$ mongo
MongoDB shell version v3.4.9
connecting to: mongodb://127.0.0.1:27017
2017-10-19T23:34:22.856+0900 W NETWORK  [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: Connection refused
2017-10-19T23:34:22.856+0900 E QUERY    [thread1] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed :
connect@src/mongo/shell/mongo.js:237:13
@(connect):1:6
exception: connect failed

接続されましたら、次のように表示されます。接続を切るには「exit」を入力します。


$ mongo
MongoDB shell version v3.4.9
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.9
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
	http://docs.mongodb.org/
Questions? Try the support group
	http://groups.google.com/group/mongodb-user
Server has startup warnings: 
2017-10-19T23:40:31.232+0900 I STORAGE  [initandlisten] 
2017-10-19T23:40:31.232+0900 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2017-10-19T23:40:31.232+0900 I STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
2017-10-19T23:40:31.349+0900 I CONTROL  [initandlisten] 
2017-10-19T23:40:31.349+0900 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-10-19T23:40:31.349+0900 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2017-10-19T23:40:31.349+0900 I CONTROL  [initandlisten] 
2017-10-19T23:40:31.349+0900 I CONTROL  [initandlisten] 
2017-10-19T23:40:31.349+0900 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2017-10-19T23:40:31.349+0900 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2017-10-19T23:40:31.349+0900 I CONTROL  [initandlisten] 
> 

3つのWARNINGが表示されますが、mongoコマンドで接続したときにWARNINGが表示されないようにするだけならば、WARNING: Access control is not enabled for the database.のみ対応すれば、3つとも表示が消えます。
ただし、mongoコマンドで接続したときだけWARNINGが消えますので、ログファイルである/var/log/mongodb/mongod.logには残り2つがしっかりと記載される点にはご注意ください。

WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine

MongoDB3.2からデフォルトストレージがWiredTigerとなり、WiredTigerが推奨するファイルシステムがXFSであることから警告が表示されるようになっています。
そのため、MongoDBをインストールしたUbuntuのファイルシステムがext4などの場合は、このWARNINGが表示されるようになりました。
解決方法としては、別パーティションを作成してからXFSファイルシステムを構築して、そちらにMongoDBのデータを移す方法がありますが、MongoDBをシステムとしてしっかり運用する場合でなければ、この警告を無視しても構わないかもしれません。

WARNING: Access control is not enabled for the database.

内部認証が有効化されていない場合に、警告が表示されるようです。
そのため、内部認証を有効化します。
内部認証を有効化するにあたり、セキュリティキーを作成し、保管しなければなりません。
ここでは、/etc/ssl/mongodbディレクトリを作成し、その中にセキュリティキーを保管することにします。
まず、セキュリティキーの保管先となるディレクトリを作成します。


$ sudo mkdir /etc/ssl/mongodb

セキュリティキーを作成した後、保管先に移動し、セキュリティキーのユーザーとグループを変更しておきます。


$ sudo openssl rand -base64 756 > security.key
$ sudo mv security.key /etc/ssl/mongodb/
$ sudo chmod 400 /etc/ssl/mongodb/security.key
$ sudo chown mongodb:mongodb /etc/ssl/mongodb/security.key

MongoDBの設定を変更するために、設定ファイルをエディタで開きます。


$ sudo vim /etc/mongod.conf

エディタに次の内容を追記します。


security:
  keyFile: /etc/ssl/mongodb/security.key

後は、設定を反映させるためにmongodを再起動しておきます。


$ sudo service mongod restart

これで、「WARNING: Access control is not enabled for the database.」はログファイルにも表示されなくなります。

WARNING: /sys/kernel/mm/transparent_hugepage/enabled is ‘always’.

マニュアルDisable Transparent Huge Pages (THP) — MongoDB Manual 3.4によると、次のように記載されております。
そのため、この警告は、Transparent Huge Pages(THP)を無効化するように推奨しています。

Transparent Huge Pages(THP)は、大きなメモリーページを使用して大量のメモリーを持つマシンでTranslation Lookaside Buffer(TLB)ルックアップのオーバーヘッドを削減するLinuxメモリー管理システムです。

ただし、データベースワークロードは、連続したメモリアクセスパターンではなく、希薄な傾向があるため、THPでパフォーマンスが低下することがよくあります。 LinuxマシンでTHPを無効にして、MongoDBで最高のパフォーマンスを確保する必要があります。

ただし、Transparent Huge Pages自体は、大容量メモリーを効率よく使用する仕組みですので、MongoDBをシステムとしてしっかり運用する場合でなければ、この警告を無視しても構わないかもしれません。

Transparent Huge Pagesを無効化する場合は、ターミナルでsysfsutils パッケージをインストールします。


$ sudo apt-get install sysfsutils

インストールが完了したら、/etc/sysfs.confファイルを開きます。


$ sudo vim /etc/sysfs.conf

/etc/sysfs.confファイルに次の一行を追加します。


kernel/mm/transparent_hugepage/enabled = never

後は、Ubuntuを再起動すれば、WARNINGが消えます。

アンインストール

MongoDBのアンインストールする場合は、以下のコマンドを順に実行します。

MongoDBの停止


$ sudo service mongod stop

MongoDB関係のパッケージをアンインストール


$ sudo apt-get purge mongodb-org*

データの削除


$ sudo rm -r /var/log/mongodb
$ sudo rm -r /var/lib/mongodb

参考

関連する記事

  • R言語 CRAN Task View:クラスター分析&有限混合モデルR言語 CRAN Task View:クラスター分析&有限混合モデル CRAN Task View:Cluster Analysis & Finite Mixture Modelsの英語での説明文をGoogle翻訳を使用させていただき機械的に翻訳したものを掲載しました。 Maintainer: Friedrich Leisch and Bettina Gruen Contact: Bettina.Gruen […]
  • 教師あり学習と教師なし学習のふわっとした説明教師あり学習と教師なし学習のふわっとした説明 機械学習の教師あり学習と教師なし学習について、難しい専門用語を全く使わずに概要を分かりやすく説明してみます。 プログラムとは まず、プログラムについてふわっと説明します。 このページをご覧になられているということは、ブラウザと呼ばれるプログラム(例えば、Google ChromeやMicrosoft Edge、Mozilla Firefox、Apple […]
  • UbuntuでGENEONTOLOGYのgo.oboをjson形式に変換する方法UbuntuでGENEONTOLOGYのgo.oboをjson形式に変換する方法 title: UbuntuでGENEONTOLOGYのgo.oboをjson形式に変換する方法 url: how-to-convert-geneontology-obo-to-json-on-ubuntu GENEONTOLOGYのgo.oboをjson形式に変換する方法をお伝えします。 環境 今回の環境を確認しておきます。 $ cat […]
  • なぜマイナス×マイナス=プラスとなるのかなぜマイナス×マイナス=プラスとなるのか 先日、ある人と話しているときに、私が大学で数学を学んだことを告げると、「なぜ、マイナス×マイナス=プラスとなるのか」と質問を受けた。 どうやら、「マイナス×マイナス=プラス」はルールとして覚えているようだった。 この質問を受けたとき、正直に言うと「すばらしい」と思った。なぜそう思ったのかというと、すでに当たり前として組み込まれている「マイナス×マイナス=プラス」に対し […]
  • 経営戦略に使えるABC分析の基礎知識と活用法経営戦略に使えるABC分析の基礎知識と活用法 ABC分析は売上に関する経営戦略を立てるうえで、最も基本となる分析手法である。ABC分析とは、販売管理、顧客管理で使われる分析の一つで、ある期間で対象を重要度によって分類することにより現状を把握し易くする分析手法だ。 それでは早速解説していく。 ABC分析の手順 期間を過去一年間、対象を商品、重要度を売上とした場合を例に取り、ABC分析を行う手順を説明していく。 […]
Ubuntu MongoDBのインストールする手順

Ubuntu MongoDBのインストールする手順」への1件のフィードバック

コメントは受け付けていません。