CentOS7にMongoDBをインストールする方法
序章
MongoDBは、無料でオープンソースのドキュメント指向データベースです。 従来のテーブルベースのリレーショナルデータベース構造に依存しないため、NoSQLデータベースとして分類されます。 代わりに、動的スキーマを持つJSONのようなドキュメントを使用します。 リレーショナルデータベースとは異なり、MongoDBでは、データベースにデータを追加する前に事前定義されたスキーマは必要ありません。 更新されたスキーマを使用して新しいデータベースをセットアップしなくても、いつでも必要な頻度でスキーマを変更できます。
このチュートリアルでは、CentOS7サーバーにMongoDBCommunityEditionをインストールする方法について説明します。
前提条件
このチュートリアルを実行する前に、root以外の通常のユーザーが sudo
特権。 これらの権限を持つユーザーを設定する方法の詳細については、ガイドCentOSでSudoユーザーを作成する方法を参照してください。
ステップ1-MongoDBリポジトリを追加する
The mongodb-org
パッケージはCentOSのデフォルトリポジトリ内に存在しません。 ただし、MongoDBは専用のリポジトリを維持しています。 サーバーに追加しましょう。
とともに vi
エディター、作成 .repo
のファイル yum
、CentOSのパッケージ管理ユーティリティ:
- sudo vi /etc/yum.repos.d/mongodb-org.repo
次に、MongoDBのドキュメントの Install on Red Hat セクションにアクセスし、最新の安定版リリースのリポジトリ情報をファイルに追加します。
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
ファイルを保存して閉じます。
先に進む前に、MongoDBリポジトリが yum
効用。 The repolist
コマンドは、有効なリポジトリのリストを表示します。
- yum repolist
Output. . .
repo id repo name
base/7/x86_64 CentOS-7 - Base
extras/7/x86_64 CentOS-7 - Extras
mongodb-org-3.2/7/x86_64 MongoDB Repository
updates/7/x86_64 CentOS-7 - Updates
. . .
とともに MongoDB Repository
所定の位置で、インストールを続行しましょう。
ステップ2–MongoDBをインストールする
インストールできます mongodb-org
を使用したサードパーティリポジトリからのパッケージ yum
効用。
- sudo yum install mongodb-org
二つあります Is this ok [y/N]:
プロンプト。 1つ目はMongoDBパッケージのインストールを許可し、2つ目はGPGキーをインポートします。 MongoDBの発行者は、ソフトウェアに署名し、 yum
キーを使用して、ダウンロードしたパッケージの整合性を確認します。 各プロンプトで、次のように入力します Y
次にを押します ENTER
鍵。
次に、MongoDBサービスを systemctl
効用:
- sudo systemctl start mongod
このチュートリアルでは使用しませんが、MongoDBサービスの状態を変更することもできます。 reload
と stop
コマンド。
The reload
コマンドは、 mongod
プロセスは構成ファイルを読み取り、 /etc/mongod.conf
、再起動せずに変更を適用します。
- sudo systemctl reload mongod
The stop
コマンドはすべての実行を停止します mongod
プロセス。
- sudo systemctl stop mongod
The systemctl
ユーティリティは、実行後に結果を提供しませんでした start
コマンドですが、サービスが開始されたことを確認するには、 mongod.log
とファイル tail
指図:
- sudo tail /var/log/mongodb/mongod.log
Output. . .
[initandlisten] waiting for connections on port 27017
接続待ちの出力は、MongoDBが正常に開始され、MongoDBシェルを使用してデータベースサーバーにアクセスできることを確認します。
- mongo
<$>[注] ノート: MongoDBシェルを起動すると、次のような警告が表示される場合があります。
** WARNING: soft rlimits too low. rlimits set to 4096 processes, 64000 files. Number of processes should be at least 32000 : 0.5 times number of files.
MongoDBはスレッド化されたアプリケーションです。 ワークロードを処理するために追加のプロセスを起動できます。 警告は、MongoDBが最も効果的であるためには、スピンアップが許可されているプロセスの数が、任意の時点で開くことができるファイルの数の半分である必要があることを示しています。 警告を解決するには、 processes
のソフトrlimit値 mongod
編集することによって 20-nproc.conf
ファイル:
- sudo vi /etc/security/limits.d/20-nproc.conf
ファイルの最後に次の行を追加します。
. . .
mongod soft nproc 32000
MongoDBで利用できる新しい制限については、 systemctl
効用:
- sudo systemctl restart mongod
その後、MongoDBシェルに接続すると、警告は表示されなくなります。 <$>
シェルからMongoDBを操作する方法を学ぶために、の出力を確認できます。 db.help()
dbオブジェクトのメソッドのリストを提供するメソッド。
- 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
0
デーモンが無効になっている場合は、 systemctl
それを有効にするユーティリティ:
- sudo systemctl enable mongod
これで、システムの再起動後に自動的に起動するMongoDBの実行中のインスタンスができました。
ステップ4–サンプルデータセットのインポート(オプション)
他のデータベースサーバーとは異なり、MongoDBにはデータが含まれていません test
データベース。 本番データを使用して新しいソフトウェアを試したくないので、「Getting StartedwithMongoDB」ドキュメントの「ImportExampleDataset」セクションからサンプルデータセットをダウンロードします。 JSONドキュメントにはレストランのコレクションが含まれており、MongoDBとの対話を練習し、機密データに害を及ぼすことを回避するために使用します。
書き込み可能なディレクトリに移動することから始めます。
- cd /tmp
使用 curl
コマンドとMongoDBからのリンクでJSONファイルをダウンロードします。
- curl -LO https://raw.githubusercontent.com/mongodb/docs-assets/primer-dataset/primer-dataset.json
The mongoimport
コマンドは、データをtestデータベースに挿入します。 The --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()
データセット内のすべてのレストランのリストを表示するメソッド。 コレクションには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に慣れたり、MongoDBを削除したりできます。 db.restaurants.drop()
方法:
- db.restaurants.drop()
最後に、シェルを終了します exit
指図:
- exit
OutputBye
結論
このチュートリアルでは、サードパーティのリポジトリをに追加する方法について説明しました。 yum
、MongoDBデータベースサーバーのインストール、サンプルデータセットのインポート、および単純なクエリの実行。 MongoDBの機能の表面をかろうじてかじっただけです。 複数のコレクションを使用して独自のデータベースを作成し、それらに多数のドキュメントを入力して、堅牢なアプリケーションの構築を開始できます。