MongoDBは、無料のオープンソースドキュメントデータベースです。これはNoSQLと呼ばれるデータベースのファミリーに属しており、MySQLやPostgreSQLなどの従来のテーブルベースのSQLデータベースとは異なります。
MongoDBでは、データは柔軟なJSONのようなドキュメントに保存され、フィールドはドキュメントごとに異なります。事前定義されたスキーマは必要なく、データ構造は時間の経過とともに変更できます。
このチュートリアルでは、Ubuntu20.04にMongoDBCommunityEditionをインストールして構成する方法について説明します。
標準のUbuntuリポジトリには、古いバージョンのMongoDBが含まれています。 Ubuntuに最新のMongoDBをインストールするのはかなり簡単です。 MongoDBリポジトリを有効にし、リポジトリのGPGキーをインポートして、MongoDBサーバーをインストールします。
Ubuntu 20.04へのMongoDBのインストール#
rootまたはsudo権限を持つユーザーとして次の手順を実行して、UbuntuにMongoDBをインストールします。
-
HTTPS経由で新しいリポジトリを追加するために必要な依存関係をインストールします:
sudo apt update
sudo apt install dirmngr gnupg apt-transport-https ca-certificates software-properties-common
-
リポジトリのGPGキーをインポートし、次のコマンドでMongoDBリポジトリを追加します。
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse'
この記事を書いている時点で、MongoDBの最新バージョンはバージョン4.4です。別のバージョンをインストールするには、
4.4
を置き換えます お好みのバージョンで。 -
リポジトリを有効にしたら、
mongodb-org
をインストールします 次のように入力してメタパッケージを作成します:sudo apt install mongodb-org
次のパッケージがシステムにインストールされます:
-
mongodb-org-server
-mongod
デーモンと対応するinitスクリプトおよび構成。 -
mongodb-org-mongos
-mongos
デーモン。 -
mongodb-org-shell
-mongoシェル、MongoDBへのインタラクティブなJavaScriptインターフェース。コマンドラインで管理タスクを実行するために使用されます。 -
mongodb-org-tools
-データ、統計、およびその他のユーティリティをインポートおよびエクスポートするためのいくつかのMongoDBツールが含まれています。
-
-
MongoDBデーモンを起動し、次のように入力して起動時に起動できるようにします。
sudo systemctl enable --now mongod
-
インストールが正常に完了したかどうかを確認するには、
mongo
を使用してMongoDBデータベースサーバーに接続します ツールを使用して、接続ステータスを印刷します:mongo --eval 'db.runCommand({ connectionStatus: 1 })'
出力は次のようになります:
MongoDB shell version v4.4.0 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("2af3ab0e-2197-4152-8bd0-e33efffe1464") } MongoDB server version: 4.4.0 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 }
1
の値ok
の場合 フィールドは成功を示します。
MongoDBの構成#
MongoDB構成ファイルの名前はmongod.conf
です。 /etc
にあります ディレクトリ。ファイルはYAML形式です。
ほとんどの場合、デフォルトの構成設定で十分です。ただし、実稼働環境では、以下に示すように、セキュリティセクションのコメントを解除し、承認を有効にすることをお勧めします。
sudo nano /etc/mongod.conf
/etc/mongod.conf security:
authorization: enabled
authorization
オプションは、データベースのリソースと操作へのユーザーのアクセスを規制する役割ベースのアクセス制御(RBAC)を有効にします。このオプションを無効にすると、各ユーザーはすべてのデータベースにアクセスして、任意のアクションを実行できます。
MongoDB構成ファイルを編集するときは、変更を有効にするためにmongodサービスを再起動します。
sudo systemctl restart mongod
MongoDB 4.4で使用可能な構成オプションの詳細については、構成ファイルオプションのドキュメントページにアクセスしてください。
MongoDB認証を有効にした場合は、MongoDBインスタンスにアクセスして管理できる管理ユーザーを作成する必要があります。
mongoシェルにアクセスします:
mongo
MongoDBシェル内から、次のコマンドを入力してadmin
に接続します データベース:
use admin
switched to db admin
次のコマンドを実行して、mongoAdmin
という名前の新しいユーザーを作成します 、パスワードchangeMe
およびuserAdminAnyDatabase
役割:
db.createUser(
{
user: "mongoAdmin",
pwd: "changeMe",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
Successfully added user: {
"user" : "mongoAdmin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
より安全なパスワードを設定することを忘れないでください。管理MongoDBユーザーには必要に応じて名前を付けることができます。 完了したら、次のコマンドでmongoシェルを終了します:
quit()
変更をテストするには、以前に作成した管理ユーザーを使用してmongoシェルにアクセスします。
mongo -u mongoAdmin -p --authenticationDatabase admin
use admin
switched to db admin
show users
を実行します 新しく作成されたユーザーに関する情報が表示されます:
show users
{
"_id" : "admin.mongoAdmin",
"userId" : UUID("49617e41-ea3b-4fea-96d4-bea10bf87f61"),
"user" : "mongoAdmin",
"db" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
],
"mechanisms" : [
"SCRAM-SHA-1",
"SCRAM-SHA-256"
]
}
引数なしでmongoシェルにアクセスすることもできます(mongo
と入力するだけです)。 )、上記と同じコマンドを使用してユーザーを一覧表示できるかどうかを確認します。