MongoDBの使用を決めました。これは素晴らしい選択です。 alternative to MariaDB MERNスタックアプリ、分析プラットフォーム、またはドキュメントベースのシステムを構築するのに最適です。ただし、Linuxコマンドラインと数えきれないターミナルエラーの壁にぶつかってしまいました。
心配する必要はありません。このガイドは、MongoDBをUbuntuにインストールするために必要な知識をAからZまですべて提供しています。
MongoDBを使用しています X.Y.Z バージョニング 8.0 です 主要 リリースシリーズ、および 8.2 です 軽微 8.0サイクル内のリリース。マイナーリリースは同じメジャーサイクル内に機能を追加し、8.0以降はオンプレミスインストール向けに特定のユースケース(例:SearchおよびVector Search)で提供されます。MongoDB 8.0はUbuntuでサポートされています 24.04(Noble)、22.04(Jammy)、20.04(Focal) 64ビットシステム上で実行され、選択されたプラットフォームではARM64サポートがあります。
GnuPGおよびCurl前提条件
公式 mongodb-org パッケージをインストールする前に、Ubuntuには2つの前提条件が必要です: GnuPG と Curl。これらのツールにより、UbuntuはMongoDBをダウンロードする権限を得ます。Ubuntuの mongodb パッケージはMongoDB Inc.によって管理されていないため、公式 mongodb-org パッケージと競合します。すでにインストール済みの場合は mongodb アンインストールしてください。
次に、以下のコマンドを実行します sudo apt-get install gnupg curl。Curlはインターネットからファイルをダウンロードするツールで、MongoDBのセキュリティキーを取得するために必要です。GnuPGはUbuntuがソフトウェアの真正性を検証するために使用するものです。GnuPGがない場合、UbuntuはMongoDBパッケージの検証に失敗します。
ターミナルがGnuPGとCurlを正常にインストールしたことを確認します。インストールされた場合、以下のようになります:
MongoDB GPGキーのインポート
UbuntuのパッケージマネージャーであるAPTは、インストール前にパッケージを検証するためにGPGキーを使用します。このGPGキーがないと、UbuntuはMongoDBのリポジトリを追加できません。ターミナルで以下のコマンドを入力してキーを追加します:
curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
--dearmor
うまくいった場合、ターミナルの出力は以下のようになります:
簡単に言うと、このコマンドはMongoDBのセキュリティシグネチャをダウンロードしてテキスト形式からバイナリ形式に変換し、Ubuntuが理解できるようにして、セキュアなシステムフォルダに保存します。以下はコマンドラインを部分ごとに分解したものです:
- curl -fsSL URL MongoDBの公式キーをダウンロード
- –dearmor キーをテキスト形式からUbuntuが理解できるバイナリ形式に変換
- -o /usr/share/keyrings/mongodb-server-8.0.gpg バイナリファイルを Ubuntu が信頼できるキーを保存するフォルダに保存します
コマンドラインを完全に一致させれば、公開 GPG キーは問題なく追加されます。ただし MongoDB のダウンロード時に GPG キーが一致しないため、エラーが発生することもあります。例えば:
NO_PUBKEY
The following signatures couldn't be verified
public key not available
これらのエラーは、先ほどの GPG キーコマンドに正確に従わず、代わりに sudo apt-key を使う場合に発生します。最新の Ubuntu ではこの方法は推奨されていません。
MongoDB リポジトリを追加する
MongoDB のリポジトリを追加すると、MongoDB パッケージが特定のインターネットアドレスで利用可能であることを Ubuntu に伝えるファイルが作成されます。リストファイルを以下の場所に作成します: /etc/apt/sources.list.d/mongodb-org-8.0.list リポジトリ行を記述するには echo … | sudo tee …
を使用します。ここから難しくなります。Ubuntu のバージョンによってコマンドの形式が異なるためです。先ほど挙げた 3 つの Ubuntu バージョンでリストファイルをインポートする方法を確認していきます。
Ubuntu 24.04 (Noble)
Ubuntu 24.04 でリストファイルを作成するには、単に以下を実行します: echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list ターミナルで
複雑に見えるかもしれませんが、心配しないでください。このコマンドをセクションごとに分解すれば、すぐに理解できます。
- echo テキストを印刷
- /etc/apt/sources.list.d は Ubuntu がソフトウェアのソース定義を保存するフォルダです。このフォルダ内の .list 形式のすべてのファイルが、Ubuntu にソフトウェアをダウンロードする特定の場所を指し示します
- デフォルトでは、通常のユーザーはシステムフォルダには何も書き込めません。 ティー はユーザーに特別な権限を与えてシステムファイルにテキストを書き込めるようにします。一方 sudo
- 高貴な は Ubuntu 24.04 のコードネームです。すべての Ubuntu バージョンには以下のようなコードネームがあります:
| バージョン | コードネーム |
| 20.04 | フォーカル |
| 22.04 | Jammy |
| 24.04 | 高貴 |
Ubuntu のバージョンが正しいコマンドラインと一致していない場合、Ubuntu は MongoDB のリポジトリを認識できません。
Ubuntu 22.04 (Jammy)
Ubuntu Jammy へのリストファイル追加も同じように見えますが、以下を置き換えてコマンドラインを入力する必要があります: 高貴な と共に jammyI don't see any English text to translate in your message. Could you please provide the English UI label you'd like me to translate to Japanese?
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
Ubuntu のバージョンと一致していることを確認してください。そうしないと再びエラーになります。
Ubuntu 20.04 (Focal)
ここでも同じ手順に従いますが、 高貴な or jammy、入れる focal:
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
リポジトリの設定が完了したので、次のインストールに進めます mongodb-org.
パッケージデータベースを更新する
Ubuntuがリポジトリを認識したら、パッケージデータベースをリロードして、今後MongoDBも含めるようにします。下のコマンドを実行してください。
sudo apt-get update
このコマンドはすべてのUbuntuバージョンで共通です。スキップするとUbuntuがMongoDBを認識しません。コマンドが正常に実行されたら、ターミナルには以下のような出力が表示されます。
パッケージデータベースをリロードしたら、次はMongoDBパッケージをダウンロードします。
MongoDB Community Serverをインストールする
MongoDBにはさまざまなリリースがありますが、ユーザーは通常、最新の安定版を選びます。最新の安定版をインストールするには、次を実行してください。 sudo apt-get install -y mongodb-org
UbuntuはMongoDBパッケージをダウンロードしてインストールし、ユーザーアカウントとデータディレクトリを作成し、MongoDBをシステムサービスとして登録しました。これでUbuntuへのMongoDBのインストール方法を説明しました。次は起動させましょう。
MongoDBを起動する方法
MongoDBを実行するには、Ubuntuのサービスマネージャーである「systemd」にMongoDBをバックグラウンドサービスとして認識させる必要があります。そのために、ターミナルに以下のコマンドを入力します。
sudo systemctl start mongod
コマンドが正常に実行されれば、UbuntuはMongoDBをバックグラウンドアプリケーションとして起動します。ただし、コマンドが失敗する場合、以下のようなエラーが表示されることがあります。 mongod.serviceの起動に失敗しました.
このエラーはいくつかの一般的な原因で発生する可能性があります。
- 設定ファイルのエラー in /etc/mongod.conf (YAMLのインデント誤りがよくあります)
- ポート競合 (ポート27017が既に使用されている)
- パーミッション問題 データディレクトリまたはログディレクトリ(var/lib/mongodbまたはvar/log/mongodb)の権限
- ディスク容量が満杯です or ファイルシステムの破損
問題を診断する3つのコマンド
MongoDBの設定に何が問題かを言うのは簡単ですが、正確な原因を特定するのは難しいものです。エラーの原因がどこにあるかを診断する3つの簡単な方法があります。
- サービスの状態を確認します: sudo systemctl status mongod –no-pager
- 詳細ログを確認してください(最も重要): sudo journalctl -u mongod –no-pager -n 100
- MongoDBのログファイルを確認してください
ただし、ディスクがいっぱいであったりシステムファイルが破損している場合は、修復はソフトウェアよりもハードウェアに関する問題になります。現在のセットアップが古い場合、MongoDBを効率的に実行するためにはより高性能な機器を購入する必要があるかもしれません。
フルサーバーの購入予算がない場合は、Cloudzyの利用を検討してください Ubuntu VPS 好みのUbuntuディストロで自分専用サーバー上でクリーンな環境を実現できます。搭載されているのは 24/7 サポートおよび最大 40Gbps ネットワーク速度です。その理由は NVMe SSD と DDR5 RAM ストレージ
さらに低レイテンシーも実現しており、 99.95% アップタイムと 14日間 返金保証があります。それだけでなく、 12 世界中の複数の場所で手頃な価格で利用できます。
MongoDBを動作させるための3つの一般的な解決方法
MongoDBの正確な問題を特定し、1ステップで修復する万能な方法はありません。ここではMongoDBの動作を開始させるために使用できる一般的な解決方法をいくつか紹介します。
- YAML設定のインデント エラー 次のファイルを編集した場合は /etc/mongod.conf インデントを再確認してください。以下のコマンドを実行します sudo nano /etc/mongod.conf。YAMLファイルはホワイトスペースに敏感なため、 /etc/mongod.conf.
- ポート27017は使用中ですで各レベルごとに2つのスペースのみであることを確認してください。ポート27017を別のプロセスが使用している場合は、そのプロセスを停止するか、MongoDBのポートを mongod.confで変更してください。ポート27017で何が実行されているか不明な場合は、以下を実行してください sudo ss -lntp | grep 27017 確認してみる
- データディレクトリのパーミッション問題 MongoDBがシステム上で実行する権限を持っていないため、まったく動作しないことがあります。まず以下を実行してください sudo chown -R mongodb:mongodb /var/lib/mongodb /var/log/mongodbその後、以下でMongoDBを再起動します sudo systemctl restart mongod
によると MongoDBの公式ウェブサイトもう1つの方法として、以下のコマンドでデーモンをリロードできます sudo systemctl daemon-reloadその後、以下のコマンドを実行します sudo systemctl start mongod、もう一度。
もしそこにない場合は mongod.serviceインストール時にsystemdユニットファイルが配置されなかった場合は、再度インストールしてください mongodb-org パッケージセット
その後、以下のコマンドでMongoDBが正常に起動したか確認できます sudo systemctl status mongodターミナルに以下が表示されたら アクティブ(実行中)問題ありません。ただし、さらにいくつかの設定を行うことで、より快適に使用できます。
MongoDBを自動実行化する
MongoDBはサーバーの起動時に自動的には立ち上がりません。毎回、前述の手順を繰り返す必要があります。または、Ubuntuを設定して、デスクトップ起動後にMongoDBを自動で開始することもできます。
単に実行 sudo systemctl enable mongod をターミナルで実行すると、以降はシステムの再起動時に毎回MongoDBが自動実行されるようになります。さらに、以下のコマンドで mongod プロセスを再起動することもできます sudo systemctl restart mongodまた、エラーや重要なメッセージについては、以下のファイルの出力を確認して対応してください
/var/log/mongodb/mongod.log
これで準備完了です。MongoDBの使用を開始しましょう。
MongoDBシェルを開く
データベースを操作するには、以下のコマンドでMongoDBシェルを開きます mongoshこれはMongoDB専用のコマンドプロンプトターミナルまたはMySQLコンソールと考えてください。別の方法として、MongoDBドライバーなどのGUIツールを使用して操作することもできます。ただしターミナルから操作したい場合は、 mongosh でそれが実現します。
これでMongoDBは完全に機能するようになりますが、セキュリティを確保するためにはいくつかの追加手順が必要です。
MongoDBに認証を設定する
MongoDBはデフォルトではパスワード保護がありません。ユーザーを作成するにはアクセス権が必要だからです。簡単なセットアップ方法をご紹介します
管理者ユーザーを作成する
まず、以下のコマンドで管理者データベースに切り替えます
use admin
次に、以下でユーザーを作成します db.createUser({…})。次の情報を入力してください
- ユーザー名
- パスワード
- 役割
ロールには、以下を入力することをお勧めします root これは完全な制御、つまり管理者権限を意味します
認証を有効にする
ユーザーを設定したら、次に /etc/mongod.conf ファイルを編集する必要があります。このファイルはMongoDBの動作を制御します。ただし、ファイルを編集した後は、必ず mongod サービスを再起動してください sudo systemctl restart mongod。ここで変更する必要があるのは、authorizationというパラメータです
security:
authorization:
認証プロセスを完了するには、authorization値を以下のように変更するだけです
security:
authorization: enabled
これからMongoDBはログインが必須になり、認証が完了します。次に、MongoDBをさらに活用するための設定に進みましょう
ファイアウォールを開く
前述の通り、MongoDBはポート27017で実行されます。ファイアウォールはデフォルトでポートをブロックするため、27017でアプリケーションを実行することをファイアウォールに許可する必要があります。以下のコマンドを実行してください
ufw allow from YOUR_IP to any port 27017
別のコマンドを実行することもできます ufw allow 27017ただし注意してください。このコマンドを実行するとインターネット全体がそのポートにアクセスできるようになります。最初のオプションを使用する方が安全です。このオプションはあなたのIPアドレスからのみポートへのアクセスを許可するからです
MongoDBを実行する際、リモートアクセスの問題など、さまざまな課題が生じる可能性があります。解決方法を確認するには、ぜひ続きをお読みください
リモートアクセスの問題
MongoDBは bindIp. bindIp MongoDB を制限します 127.0.0.1で起動し、ローカル接続のみを許可します。つまり、別の場所からMongoDBサーバーに接続しようとしても、アクセスは拒否されます。MongoDBはデフォルトでは、別途設定がない限りオンサイト接続のみを許可するためです
再度 /etc/mongod.confに移動すると、次のような3行が表示されます
net:
port: 27017
bindIp: 127.0.0.1
リモート接続をユーザーに許可したい場合は、上記の値を以下のように変更してください: mongod ユーザー、値を上記のように変更してください:
net:
port: 27017
bindIp: 0.0.0.0
その後、再起動してください: mongod サービス付き sudo systemctl restart mongod ファイルの他の編集と同じように。
これでユーザーに対して、 mongod サービスにリモート接続を受け入れる権限を付与しました。ただし注意してください。こうすることで、ユーザーをまだ認証していない場合、データベースがインターネット全体に露出します。 mongod ユーザー。常にMongoDBポートをスキャンするボットが多数存在するため、mongodユーザーに必ずパスワードを設定してください。
全体像のまとめ
お疲れさまでした。これでUbuntuシステム用に最適化されたMongoDBサービスを構築するためのすべての手順を完了しました。この記事で紹介したすべてのステップを追跡するためのメンタルマップもあります。
| コマンド | 何ができるか |
| apt アップデート | ソフトウェアリストを更新 |
| apt インストール | ソフトウェアをインストール |
| curl | ファイルをダウンロード |
| gpg | 暗号化キーを管理 |
| echo | テキストを印刷 |
| ティー | 保護されたファイルに書き込む |
| systemctl start | サービスを開始 |
| systemctl enable | ブート時に開始 |
| systemctl status | サービスを確認 |
| mongosh | MongoDBシェルに入る |
| 編集 /etc/mongod.conf | 認証を有効にする |
| ufw | ファイアウォールを管理 |
| bindIp | リモートアクセスを許可 |
これで全体的なプロセスをよりよく理解できるはずです。ただし、MongoDBを自分でセットアップするのが大変な場合は、Cloudzyの MongoDB VPS を起動してください。MongoDBがプリインストールされたUbuntu 24.04 LTSサーバーを自分専用で利用できます。
付属しています 99.95% uptime, 24/7 サポート、および 14日間 返金保証。それ以外にも、以下のおかげで最大 40 Gbps の帯域幅をサポートしています: DDR5 RAM と NVMe SSD ストレージ。どこに住んでいるかについても心配する必要はありません。以下の場所で利用できるからです: 12 の拠点でお手頃な価格でご利用いただけます。
こうして、本番レベルのワークロードとビジネスに対応する構成を備えた独自のMongoDBサービスのセットアップが完了しました。