MongoDBインストール · 2 min read · Oct 21, 2025

Debian 12にMongoDBをインストールする方法

MongoDBはオープンソースのクロスプラットフォームで分散型のNoSQL(非SQLまたは非リレーショナル)データベースシステムです。従来のSQLデータベースのようにデータをテーブルに保存するのではなく、MongoDBは柔軟なドキュメントを使用してさまざまなデータ形式を保存します。MongoDBはデータを保存するためにバイナリJSON形式であるBSONを使用します。

MongoDBは、組み込みの高可用性、自動フェイルオーバーとデータ冗長性、分散クラスター全体でのシャーディングによる水平スケーリングを備えた分散型NoSQLデータベースであり、マルチリージョンの地理的展開をサポートしています。MongoDBは、CRUD操作(読み取りと書き込み)、データ集約パイプライン、テキスト検索、地理空間クエリをサポートするクエリAPIも提供しています。

このチュートリアルでは、Debian 12サーバーにMongoDBをインストールする方法を学びます。また、MongoDB認証を有効にし、’mongosh’ MongoDBクライアントを使用し、基本的なクエリを使用してMongoDBに新しいユーザーとデータベースを作成する方法も学びます。

前提条件

このチュートリアルを始める前に、以下を確認してください:

  • Debian 12サーバー
  • 管理者権限を持つ非ルートユーザー

Debianサーバーの準備

MongoDBをDebianサーバーにインストールする前に、以下の設定を適用することをお勧めします:

  • systemdスクリプトを介して透明な巨大ページ(THP)を無効にする
  • MongoDBユーザーのデフォルト制限を増加させる
  • /etc/sysctl.conf ‘ファイルを介してスワップネスを有効にし、max_mmapメモリを増加させる

それでは、Debianサーバーを構成しましょう。

まず、以下の’nano’コマンドを実行して新しいサービスファイル/etc/systemd/system/disable-thp.serviceを作成します。

sudo nano /etc/systemd/system/disable-thp.service

以下のサービススクリプトを貼り付けて、’ transparent_hugepage ‘を’ never ‘に設定します。

[Unit]  
Description=透明な巨大ページ(THP)を無効にする  
  
[Service]  
Type=simple  
ExecStart=/bin/sh -c "echo 'never' > /sys/kernel/mm/transparent_hugepage/enabled && echo 'never' > /sys/kernel/mm/transparent_hugepage/defrag"  
  
[Install]  
WantedBy=multi-user.target

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

次に、以下の’systemctl’コマンドを実行してsystemdマネージャーをリロードします。その後、’ disable-thp ‘サービスを開始および有効にします。これにより、システム起動時に’ transparent_hugepage ‘が無効になります。

sudo systemctl daemon-reload  
sudo systemctl enable --now disable-thp.service

次に、’ nano ‘エディタを使用して新しいファイル/etc/security/limits.d/mongodb.confを作成します。

sudo nano /etc/security/limits.d/mongodb.conf

以下の設定を挿入して、ユーザー’ mongod ‘の最大制限プロセスとファイルを’ 64000 ‘に設定します。

mongod soft nproc 64000  
mongod hard nproc 64000  
mongod soft nofile 64000  
mongod hard nofile 64000

完了したら、ファイルを保存して終了します。

その後、以下の内容で’ /etc/sysctl.conf ‘ファイルを編集します。

sudo nano /etc/sysctl.conf

以下の設定を行の最後に挿入します。

fs.file-max = 2097152  
vm.max_map_count = 262144  
vm.swappiness = 1

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

最後に、以下の’sysctl’コマンドを実行して、’ /etc/sysctl.conf ‘ファイルの変更を即座に適用します。

sudo sysctl -p

setup system

DebianにMongoDBサーバーをインストールする

Debianサーバーの構成が完了したので、MongoDBのインストールを開始しましょう。この場合、公式のMongoDBリポジトリを介してMongoDB 7.0をDebianサーバーにインストールします。

以下のコマンドで、Debianシステムに’ gnupg ‘および’ curl ‘パッケージをインストールします。

sudo apt install gnupg curl

install gnupe curl

次に、以下のコマンドでDebian用のMongoDB GPGキーとリポジトリを追加します。この場合、MongoDB 7.0用のリポジトリを設定します。

curl -fsSL https://www.mongodb.org/static/pgp/server-7.0.asc | \  
sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg \  
--dearmor
echo "deb [ signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] http://repo.mongodb.org/apt/debian bookworm/mongodb-org/7.0 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list

add repo

次に、以下の’ apt ‘コマンドを実行してパッケージリストを更新し、’mongodb-org’パッケージをインストールします。

sudo apt update && sudo apt install mongodb-org -y

以下の出力で、MongoDBのインストールが確認できます。

install mongodb

インストールが完了したら、’systemctl’コマンドでsystemdマネージャーをリロードします。

sudo systemctl daemon-reload

‘mongod’サービスを開始および有効にし、サービスが実行中であることを確認します。

sudo systemctl enable --now mongod  
sudo systemctl status mongod

MongoDBが実行中であれば、以下のような出力が表示されます。

check mongodb

認証によるMongoDBサーバーのセキュリティ

MongoDBがインストールされたので、MongoDB認証を有効にしてインストールを保護する必要があります。このセクションでは、MongoDB認証を設定し、MongoDB用の新しい管理者ユーザーを作成します。これにより、’ mongosh ‘またはMongoDBクライアントを使用し、基本的なMongoDBクエリを使用する方法を示します。

以下の’mongosh’コマンドでMongoDBサーバーにログインします。デフォルトのMongoDBインストールにはパスワードはありません。

mongosh

disableTelemetry() ‘コマンドを実行して、MongoDBからの匿名データ収集を無効にします。

disableTelemetry()

use ‘クエリを使用してデータベース’ admin ‘に切り替えます。

use admin

次に、以下のクエリを実行して、MongoDBサーバーの管理者として使用される新しいユーザー’ myAdmin ‘を作成します。求められたらパスワードを入力してください。

db.createUser(  
{  
user: "myAdmin",  
pwd: passwordPrompt(),  
roles: [  
{ role: "userAdminAnyDatabase", db: "admin" },  
{ role: "readWriteAnyDatabase", db: "admin" }  
]  
}  
)

quit() ‘コマンドを入力してMongoDBサーバーから退出します。

quit()

create user

次に、’ nano ‘エディタを使用して’ /etc/mongod.conf ‘ファイルを編集します。

sudo nano /etc/mongod.conf

security ‘オプションのコメントを外し、’ authorization: enabled ‘を追加してMongoDBの認証を有効にします。

security:  
  authorization: enabled

ファイルを保存してエディタを終了します。

次に、以下の’systemctl’コマンドを実行してMongoDBサーバーを再起動し、変更を適用します。

sudo systemctl restart mongod

MongoDB認証のテスト

管理者ユーザーを作成し、MongoDBサーバーで認証を有効にしたので、’ myAdmin ‘ユーザーとしてMongoDBサーバーにログインして構成を確認しましょう。

以下の’mongosh’コマンドを実行して、’ myAdmin ‘ユーザーとしてMongoDBサーバーにログインし、求められたらパスワードを入力します。

mongosh --port 27017 --authenticationDatabase \  
"admin" -u "myAdmin" -p

login mongodb

ログイン後、以下のクエリを実行してMongoDBサーバーへの接続状況を確認します。

db.runCommand({connectionStatus : 1})

以下のように、’ myAdmin ‘ユーザーとしてMongoDBサーバーに接続されていることが確認できます。

check connection

最初のデータベースとユーザーの作成

このセクションでは、’mongosh’ MongoDBクライアントを介してアプリケーションで使用される新しいデータベースとユーザーを作成します。したがって、’ mongosh ‘環境にいることを確認してください。

まず、’ use ‘クエリを実行してターゲットデータベースを作成し、切り替えます。この例では、新しいデータベース’ mydb ‘を作成します。MongoDBプロンプトが’ mydb ‘に変更されます。

use mydb

次に、以下のクエリを実行して、データベース’ mydb ‘に読み書きする権限を持つ新しいユーザー’ myUser ‘を作成します。求められたら新しいパスワードを入力します。

use mydb  
db.createUser(  
{  
user: "myUser",  
pwd: passwordPrompt(),  
roles: [ { role: "readWrite", db: "mydb" },  
{ role: "read", db: "reporting" } ]  
}  
)

create new database and user

次に、以下のクエリを実行して’ admin ‘データベースに切り替え、MongoDBサーバー上のユーザーのリストを確認します。

use admin  
db.system.users.find()

以下のように、ユーザー’ myAdmin ‘と’ myUser ‘が作成されているのが確認できます。

MongoDBサーバーから退出するには、’ quit() ‘を入力します。

listing users

最後に、以下のコマンドで新しいユーザー’ myUser ‘としてデータベース’ mydb ‘にログインします。求められたらパスワードを入力します。

mongosh --port 27017 -u "myUser" \  
--authenticationDatabase "mydb" -p

login mongodb

以下のクエリを実行して現在の接続状況を確認します。

db.runCommand({connectionStatus : 1})

authInfo ‘セクションで、ユーザー’ myUser ‘およびデータベース’ mydb ‘として認証されていることが確認できます。

check connection

結論

おめでとうございます!Debian 12サーバーにMongoDB 7.0のインストールが完了しました。また、認証を有効にしてMongoDBサーバーを保護し、新しい管理者ユーザーを作成する方法も学びました。最後に、アプリケーション用の新しいMongoDBデータベースとユーザーを作成する方法も学びました。

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。