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

前書き

[ MongoDB](https://cloud.tencent.com/product/mongodb?from=10680)は、無料のオープンソースソフトウェアであるドキュメント指向のデータベースです。従来のテーブルベースのリレーショナルデータベース構造に依存しないため、NoSQLデータベースとして分類されます。代わりに、JSONのようなドキュメントと動的パターンを使用します。リレーショナルデータベースとは異なり、MongoDBは、データベースにデータを追加する前に事前定義されたスキーマを必要としません。更新されたスキーマで新しいデータベースを設定しなくても、必要に応じていつでもスキーマを変更できます。

このチュートリアルでは、CentOS7サーバーにMongoDBCommunityEditionをインストールする方法について説明します。

準備 ##

sudoコマンドを使用できる非rootアカウントのCentOS サーバーがセットアップされ、ファイアウォールがオンになっています。サーバーをお持ちでない方は[こちら](https://cloud.tencent.com/product/cvm?from=10680)から購入できますが、個人的には無料のTencent Cloud [開発者ラボ](https://cloud.tencent.com/developer/labs?from=10680)を使って実験してから[サーバーを購入]( https://cloud.tencent.com/product/cvm?from=10680)。

ステップ1-MongoDBリポジトリを追加する

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

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

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

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

[ 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

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

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

yum repolist
...
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リポジトリで、インストールを続けましょう。

ステップ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
...[ 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の警告文として最も効果的なのは、開始が許可されているプロセスの数を、いつでも開くことができるファイルの数の半分にすることです。警告を削除するには、 mongod``20-nproc.confファイルを編集して、 processesのソフトrlimit値を変更してください。

sudo vi /etc/security/limits.d/20-nproc.conf

ファイルの最後に次の行を追加します。

...
mongod soft nproc 32000

MongoDBで新しい制限を利用できるようにするには、 systemctlユーティリティを使用して再起動します。

sudo systemctl restart mongod

その後、MongoDBシェルに接続すると、警告は表示されなくなります。

シェルからMongoDBを操作する方法を理解するために、** db **オブジェクトのメソッドのリストを提供する db.help()メソッドの出力を表示できます。

db.help()
DB 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
Bye

ステップ3-開始を確認する

データベース駆動型アプリケーションはデータベースなしでは実行できないため、MongoDBデーモン mongodがシステムから起動するようにします。

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

systemctl is-enabled mongod; echo $?

デーモンが有効になっていて必要であることを確認するための出力はゼロです。ただし、起動できないことが確認された無効化されたデーモン。

...
enabled
0

デーモンが無効になっている場合は、 systemctlユーティリティを使用して有効にします。

sudo systemctl enable mongod

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

ステップ4-サンプルデータセットをインポートする(オプション)

他のデータベースサーバーとは異なり、MongoDBの testデータベースにはデータがありません。新しいソフトウェアのテストに本番データを使用したくないので、「MongoDBの概要」ドキュメントの「[サンプルデータセットのインポート](https://docs.mongodb.com/getting-started/shell/import-data/)」セクションからサンプルデータセットをダウンロードします。 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ファイルからデータをインポートするための確認を出力します。

connected to: localhost
imported 25359 documents

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

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

mongo

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

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

db.restaurants.find().limit(1).pretty()
{"_ 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
Bye

結論として ##

このチュートリアルでは、 yumにサードパーティのリポジトリを追加する方法、MongoDBデータベースサーバーをインストールする方法、サンプルデータセットをインポートする方法、および簡単なクエリを実行する方法を紹介しました。 MongoDBの機能の表面にはほとんど触れていません。複数のコレクションを使用して独自のデータベースを作成し、それらに多くのドキュメントを入力して、強力なアプリケーションの構築を開始できます。

その他のCentOSチュートリアルについては、[Tencent Cloud + Community](https://cloud.tencent.com/developer?from=10680)にアクセスして詳細をご覧ください。

参照:「CentOS7にMongoDBをインストールする方法」

Recommended Posts

CentOS7にMongoDBをインストールする方法
CentOS8にMongoDBをインストールする方法
centOS7にjdk1.8をインストールする方法
CentOS8にMySQLをインストールする方法
CentOS8にMemcachedをインストールする方法
CentOS8にRをインストールする方法
CentOS8にFFmpegをインストールする方法
CentOS8にVirtualboxをインストールする方法
CentOS8にTensorFlowをインストールする方法
CentOS8にTeamViewerをインストールする方法
CentOSにPerl5をインストールする方法
CentOS8にGitをインストールする方法
CentOS8にGradleをインストールする方法
CentOS8にElasticsearchをインストールする方法
CentOS8にJenkinsをインストールする方法
CentOS8にJavaをインストールする方法
CentOS8にGoをインストールする方法
CentOS8にGCCをインストールする方法
CentOS8にYarnをインストールする方法
Ubuntu16.04にMongoDBをインストールする方法
CentOS7にAsteriskをインストールする方法
CentOS8にJenkinsをインストールする方法
CentOS8にPython3.8をインストールする方法
CentOS8にTomcat9をインストールする方法
CentOS8にWebminをインストールする方法
CentOS8にRubyをインストールする方法
CentOS8にSkypeをインストールする方法
CentOS8にhtopをインストールする方法
CentOS8にPythonをインストールする方法
CentOS8にElasticsearchをインストールする方法
CentOS8にPostgresqlをインストールする方法
CentosにWordpressをインストールする方法
CentOS8にhtopをインストールする方法
CentOS8にTeamViewerをインストールする方法
CentOS8にMariaDBをインストールする方法
CentOS8にOdoo13をインストールする方法
CentOS8にApacheをインストールする方法
CentOS8にOpenCVをインストールする方法
CentOS8にPHPをインストールする方法
CentOS8にApacheMavenをインストールする方法
CentOS7にApacheKafkaをインストールする方法
R&D:CentOS7にPython3をインストールする方法
CentOS7にGCCコンパイラをインストールする方法
centos7.0にオフラインJDK1.8をインストールする方法
CentOS8にVisualStudioコードをインストールする方法
CentOS7にDockerをインストールして使用する方法
CentOSLinuxにRPMパッケージをインストールする方法
CentOS8にVNCをインストールして構成する方法
CentOS8にComposerをインストールして使用する方法
CentOS8にRedisをインストールして構成する方法
CentOS8にNode.jsとnpmをインストールする方法
centos7.2.1511にjdk1.8.0_151とmysql5.6.38をインストールする方法
CentOS8にCurlをインストールして使用する方法
CentOS8にOwncloudをインストールして構成する方法
CentOS8にVirtualBoxクライアント拡張機能をインストールする方法
RHEL 8 / CentOS8にDockerCEをインストールする方法
centosにtomcatをインストールおよびアンインストールする方法
CentOS8にRedmineをインストールして構成する方法
Ubuntu20.04にRubyをインストールする方法
Ubuntu20.04にMemcachedをインストールする方法
Ubuntu20.04にJavaをインストールする方法