CentOS 7にMongoDBをインストールする方法

前書き

MongoDBは、無料でオープンソースのドキュメント指向データベースです。 従来のテーブルベースのリレーショナルデータベース構造に依存しないため、NoSQLデータベースとして分類されます。 代わりに、動的スキーマを持つJSONのようなドキュメントを使用します。 リレーショナルデータベースとは異なり、MongoDBは、データベースにデータを追加する前に事前定義されたスキーマを必要としません。 更新されたスキーマを使用して新しいデータベースをセットアップすることなく、いつでも必要に応じてスキーマを変更できます。

このチュートリアルでは、CentOS 7サーバーにMongoDB Community Editionをインストールする方法を説明します。

前提条件

このチュートリアルを実行する前に、 `+ sudo +`特権を持つ通常の非rootユーザーがいることを確認してください。 これらの権限を持つユーザーを設定する方法については、ガイドhttps://www.digitalocean.com/community/tutorials/how-to-create-a-sudo-user-on-centos-quickstart [ CentOSでSudoユーザーを作成する方法]。

ステップ1 – MongoDBリポジトリの追加

`+ mongodb-org +`パッケージは、CentOSのデフォルトリポジトリ内に存在しません。 ただし、MongoDBは専用のリポジトリを保持しています。 サーバーに追加しましょう。

`+ vi `エディターで、CentOSのパッケージ管理ユーティリティである ` yum `の ` .repo +`ファイルを作成します。

sudo vi /etc/yum.repos.d/mongodb-org.repo

次に、MongoDBのドキュメントのhttps://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/#configure-the-package-management-system-yum[Red Hatにインストール]セクションにアクセスします。そして、最新の安定版リリースのリポジトリ情報をファイルに追加します。

/etc/yum.repos.d/mongodb-org.repo

[mongodb-org-]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org//x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-.asc

ファイルを保存して閉じます。

先に進む前に、MongoDBリポジトリが `+ yum `ユーティリティ内に存在することを確認する必要があります。 ` repolist +`コマンドは有効なリポジトリのリストを表示します:

yum repolist
Output. . .
repo id                          repo name
base/7/x86_64                    CentOS-7 - Base
extras/7/x86_64                  CentOS-7 - Extras

updates/7/x86_64                 CentOS-7 - Updates
. . .

`+ MongoDB Repository +`を配置したら、インストールを進めましょう。

ステップ2 – MongoDBのインストール

`+ yum `ユーティリティを使用して、サードパーティのリポジトリから ` mongodb-org +`パッケージをインストールできます。

sudo yum install mongodb-org

2つの `+ Is this ok [y / N]:`プロンプトがあります。 1つ目はMongoDBパッケージのインストールを許可し、2つ目はGPGキーをインポートします。 MongoDBの発行者はソフトウェアに署名し、「 yum 」はキーを使用してダウンロードしたパッケージの整合性を確認します。 各プロンプトで、「 Y 」と入力し、「 ENTER +」キーを押します。

次に、 `+ systemctl +`ユーティリティを使用してMongoDBサービスを開始します。

sudo systemctl start mongod

このチュートリアルではこれらを使用しませんが、 `+ reload `および ` stop +`コマンドを使用してMongoDBサービスの状態を変更することもできます。

`+ reload `コマンドは、 ` mongod `プロセスが設定ファイル ` / etc / mongod.conf +`を読み取ることを要求し、再起動を必要とせずに変更を適用します。

sudo systemctl reload mongod

`+ stop `コマンドは、実行中のすべての ` mongod +`プロセスを停止します。

sudo systemctl stop mongod

`+ systemctl `ユーティリティは ` start `コマンドの実行後に結果を提供しませんでしたが、 ` tail `コマンドで ` mongod.log +`ファイルの終わりを見るとサービスが開始したことを確認できます:

sudo tail /var/log/mongodb/mongod.log
Output. . .
  • waiting for a connection *の出力は、MongoDBが正常に起動し、MongoDBシェルでデータベースサーバーにアクセスできることを確認します。

mongo

シェルからMongoDBを操作する方法を学習するには、* db *オブジェクトのメソッドのリストを提供する `+ db.help()+`メソッドの出力を確認できます。

db.help()
OutputDB methods:
   db.adminCommand(nameOrDocument) - switches to 'admin' db, and runs command [ just calls db.runCommand(...) ]
   db.auth(username, password)
   db.cloneDatabase(fromhost)
   db.commandHelp(name) returns the help for the command
   db.copyDatabase(fromdb, todb, fromhost)
   db.createCollection(name, { size : ..., capped : ..., max : ... } )
   db.createUser(userDocument)
   db.currentOp() displays currently executing operations in the db
   db.dropDatabase()
. . .

+ mongod`プロセスをバックグラウンドで実行したままにしますが、 + exit`コマンドでシェルを終了します:

exit
OutputBye

ステップ3 –起動の確認

データベース駆動型アプリケーションはデータベースなしでは機能できないため、MongoDBデーモン `+ mongod +`がシステムで起動することを確認します。

`+ systemctl +`ユーティリティを使用して、起動ステータスを確認します。

systemctl is-enabled mongod; echo $?

ゼロの出力は、有効なデーモンを確認します。 ただし、1つは、起動しない無効なデーモンを確認します。

Output. . .
enabled

デーモンが無効になった場合、 `+ systemctl +`ユーティリティを使用して有効にします:

sudo systemctl enable mongod

これで、システムの再起動後に自動的に開始されるMongoDBの実行中のインスタンスができました。

ステップ4 –サンプルデータセットのインポート(オプション)

他のデータベースサーバーとは異なり、MongoDBの `+ test +`データベースにはデータがありません。 実稼働データを使用して新しいソフトウェアを試したくないので、「https://docs.mongodb.com/getting-started/shell/import-data/ [サンプルデータセットのインポート]」からサンプルデータセットをダウンロードします。 「Getting Started with MongoDB」ドキュメントのセクション。 JSONドキュメントにはレストランのコレクションが含まれています。これを使用して、MongoDBとのやり取りを練習し、機密データへの害を回避します。

書き込み可能なディレクトリに移動することから始めます。

cd /tmp

`+ curl +`コマンドとMongoDBからのリンクを使用して、JSONファイルをダウンロードします。

curl -LO https://raw.githubusercontent.com/mongodb/docs-assets/primer-dataset/primer-dataset.json

`+ mongoimport `コマンドは、データを* test *データベースに挿入します。 `-db `フラグは使用するデータベースを定義し、 `-collection `フラグは情報をデータベース内のどこに保存するかを指定し、 `-file +`フラグはコマンドを実行するファイルを指示しますインポートアクション:

mongoimport --db test --collection restaurants --file /tmp/primer-dataset.json

出力は、 `+ primer-dataset.json +`ファイルからのデータのインポートを確認します:

Outputconnected to: localhost
imported 25359 documents

サンプルデータセットを配置したら、それに対してクエリを実行します。

MongoDBシェルを再起動します。

mongo

シェルはデフォルトで `+ test +`データベースを選択します。これはデータをインポートした場所です。

`+ find()`メソッドを使用して* restaurants *コレクションをクエリし、データセット内のすべてのレストランのリストを表示します。 コレクションには25,000を超えるエントリが含まれているため、オプションの ` limit()`メソッドを使用して、クエリの出力を指定した数に減らします。 さらに、 ` pretty()+`メソッドは、改行とインデントを使用して情報を人間が読みやすくします。

db.restaurants.find().limit( 1 ).pretty()
Output{
   "_id" : ObjectId("57e0443b46af7966d1c8fa68"),
   "address" : {
       "building" : "1007",
       "coord" : [
           -73.856077,
           40.848447
       ],
       "street" : "Morris Park Ave",
       "zipcode" : "10462"
   },
   "borough" : "Bronx",
   "cuisine" : "Bakery",
   "grades" : [
       {
           "date" : ISODate("2014-03-03T00:00:00Z"),
           "grade" : "A",
           "score" : 2
       },
       {
           "date" : ISODate("2013-09-11T00:00:00Z"),
           "grade" : "A",
           "score" : 6
       },
       {
           "date" : ISODate("2013-01-24T00:00:00Z"),
           "grade" : "A",
           "score" : 10
       },
       {
           "date" : ISODate("2011-11-23T00:00:00Z"),
           "grade" : "A",
           "score" : 9
       },
       {
           "date" : ISODate("2011-03-10T00:00:00Z"),
           "grade" : "B",
           "score" : 14
       }
   ],
   "name" : "Morris Park Bake Shop",
   "restaurant_id" : "30075445"
}

サンプルデータセットを引き続き使用してMongoDBに慣れるか、 `+ db.restaurants.drop()+`メソッドで削除できます。

db.restaurants.drop()

最後に、 `+ exit +`コマンドでシェルを終了します:

exit
OutputBye

結論

このチュートリアルでは、サードパーティのリポジトリを `+ yum +`に追加し、MongoDBデータベースサーバーをインストールし、サンプルデータセットをインポートし、簡単なクエリを実行する方法を説明しました。 MongoDBの機能の表面をかろうじてスクラッチしました。 いくつかの*コレクション*を使用して独自のデータベースを作成し、それらに多くの*ドキュメント*を入力して、堅牢なアプリケーションの構築を開始できます。

Related