ウェブサイト検索

Ubuntu 18.04 に MongoDB をインストールする方法


MongoDB は、 の最先端テクノロジーに基づいて、高パフォーマンスのデータ永続性、高可用性、自動スケーリングを実現するように設計された、オープンソースの最新のドキュメント データベース管理システムです。ノーSQLです。 MongoDB では、レコードはドキュメントであり、フィールドと値のペアで構成されるデータ構造です (MongoDB ドキュメントは JSON オブジェクトに相当します)。

高性能で優れたスケーラビリティ機能を提供するため、強力でミッションクリティカルな高可用性データベースを必要とする最新のアプリケーションの構築に使用されています。

この記事では、Ubuntu 18.04MongoDB をインストールし、そのサービスを管理し、基本認証を設定する方法を説明します。

重要: MongoDB の開発者は、64 ビット LTS (長期サポート) Ubuntu リリースのパッケージのみを提供していることに注意してください。14.04 LTS (トラスティ)、16.04 LTS (ゼニアル) など。

こちらもお読みください: Ubuntu 16.04/14.04 LTS に MongoDB をインストールする方法

ステップ 1: Ubuntu 18.04 に MongoDB をインストールする

1. Ubuntu の公式ソフトウェア パッケージ リポジトリには、最新バージョンの MongoDB が付属しており、APT パッケージ マネージャーを使用して簡単にインストールできます。

まず、システム ソフトウェア パッケージ キャッシュを更新して、リポジトリ リストの最新バージョンを取得します。

sudo apt update

2. 次に、mongo-toolsmongodb-clientsmongodb-server< などの他のいくつかのパッケージを含む MongoDB パッケージをインストールします。mongodb-server-core

sudo apt install mongodb

3. 正常にインストールされると、MongoDB サービスが systemd 経由で自動的に開始され、プロセスはポート 27017 で待機します。以下に示すように、systemctl コマンドを使用してステータスを確認できます。

sudo systemctl status mongodb

ステップ 2: MongoDB サービスの管理

4. MongoDB インストールは systemd サービスとして提供され、示されているように標準の systemd コマンドを介して簡単に管理できます。

MongoDB サービスの実行を停止するには、次のコマンドを実行します。

sudo systemctl stop mongodb	

MongoDB サービスを開始するには、次のコマンドを入力します。

sudo systemctl start mongodb

MongoDB サービスを再起動するには、次のコマンドを入力します。

sudo systemctl restart mongodb	

自動的に開始された MongoDB サービスを無効にするには、次のコマンドを入力します。

sudo systemctl disable mongodb	

MongoDB サービスを再度有効にするには、次のコマンドを入力します。

sudo systemctl enable mongodb	

ステップ 3: ファイアウォールでリモート MongoDB アクセスを有効にする

5. デフォルトでは、MongoDB はポート 27017 で実行され、どこからでもアクセスできるようになります。

sudo ufw allow 27017

ただし、どこからでも MongoDB にアクセスできるようにすると、データベース データに無制限にアクセスできるようになります。したがって、次のコマンドを使用して、特定の IP アドレスの場所へのアクセスを MongoDB のデフォルトのポートに付与することをお勧めします。

sudo ufw allow from your_server_IP/32 to any port 27017 
sudo ufw status

6. デフォルトでは、ポート 27017 はローカル アドレス 127.0.0.1 のみをリッスンします。リモート MongoDB 接続を許可するには、次のようにサーバー IP アドレスを /etc/mongodb.conf 構成ファイルに追加する必要があります。

bind_ip = 127.0.0.1,your_server_ip
#port = 27017

ファイルを保存し、エディタを終了して、MongoDB を再起動します。

sudo systemctl restart mongodb

ステップ 4: MongoDB データベースのルート ユーザーとパスワードを作成する

7. デフォルトでは、MongoDB はユーザー認証が無効になっているため、アクセス制御なしで開始されます。 mongo シェルを起動するには、次のコマンドを実行します。

mongo 

8. mongo シェルに接続したら、次のコマンドを使用して、利用可能なすべてのデータベースを一覧表示できます。

> show dbs

9. MongoDB デプロイメントでアクセス制御を有効にして認証を強制します。ユーザーはデータベース サーバーに接続するたびに自分自身を識別する必要があります。

MongoDB は、 デフォルトでソルテッド チャレンジ レスポンス認証メカニズム (スクラム) 認証メカニズムを使用します。 MongoDB は、SCRAM を使用して、提供されたユーザー資格情報をユーザーの名前、パスワード、認証データベース (ユーザーが作成されたデータベースであり、ユーザー名とともにユーザーを識別するために使用されます) と照合して検証します。

管理データベースにユーザー管理者 (MySQL/MariaDB の root ユーザーに相当) を作成する必要があります。このユーザーは、ユーザーの作成、ユーザーへのロールの付与または取り消し、カスタム ロールの作成または変更など、ユーザーとロールを管理できます。

まず管理者データベースに切り替え、次のコマンドを使用してルート ユーザーを作成します。

> use admin 
> db.createUser({user:"root", pwd:"=@!#@%$admin1", roles:[{role:"root", db:"admin"}]})

次に説明するように、mongo シェルを終了して認証を有効にします。

10. mongodb インスタンスが --auth コマンド ライン オプションなしで起動されました。 /lib/systemd/system/mongod.service ファイルを編集してユーザーの認証を有効にする必要があります。まず、次のように編集するためにファイルを開きます。

sudo vim /lib/systemd/system/mongodb.service 

[Service] config セクションで、パラメータ ExecStart を見つけます。

ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS

これを次のように変更します。

ExecStart=/usr/bin/mongod --auth --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS

ファイルを保存して終了します。

11. 8. 構成ファイルに変更を加えた後、「systemctl daemon-reload」を実行してユニットをリロードし、MongoDB サービスを再起動して、次のようにステータスを確認します。

systemctl daemon-reload
sudo systemctl restart mongodb	
sudo systemctl status mongodb	

12. mongodb に接続しようとするときは、MongoDB ユーザーとして認証する必要があります。例えば:

mongo -u "root" -p --authenticationDatabase "admin"

: パスワードはシェル履歴ファイルに保存され、後で攻撃者によって閲覧される可能性があるため、コマンドラインにパスワードを入力することはお勧めできません。

それだけです! MongoDB は、高パフォーマンス、高可用性、自動スケーリングを提供するオープンソースの最新の NoSQL データベース管理システムです。

この記事では、Ubuntu 18.04MongoDB をインストールして使い始める方法を説明しました。ご質問がある場合は、以下のコメントフォームを使用してご連絡ください。