MongoDBはドキュメントデータベースであり、データをJSONのような形式で保存します。これは、従来のリレーショナルデータベースとは対照的な革新的なアプローチです。これは、SQLデータベースがすぐになくなるという意味ではありません。構造化データを保存する必要がある場合は、長期間ここにあります。
そうは言っても、MongoDBはますます多くのユースケースを取得しています。その場で変更できる形式でデータを保存する機能は、数えなければならないものです。
このチュートリアルでは、tarballパッケージを使用して、このNoSQLデータベースの最新のコミュニティリリースをRHEL 8 /CentOS8にインストールします。これがスムーズに機能するように、最小限の環境をセットアップし、構成と実行中のサービスをテストします。
このチュートリアルでは、次のことを学びます。
- MongoDBtarballをダウンロードして抽出する方法
- サービスの環境を設定する方法
- モンゴッドサービスを管理する方法
- mongoシェルにログインし、サンプルデータを挿入してクエリする方法
mongodbのクエリ例。
使用されるソフトウェア要件と規則
カテゴリ | 使用する要件、規則、またはソフトウェアバージョン |
---|---|
RHEL 8 / CentOS 8 | |
MongoDB 4 | |
rootまたはsudo を介したLinuxシステムへの特権アクセス コマンド。 | |
# –指定されたLinuxコマンドは、rootユーザーとして直接、またはsudo を使用して、root権限で実行する必要があります。 コマンド$ –特定のLinuxコマンドを通常の非特権ユーザーとして実行する必要があります |
RHEL 8 /CentOS8にmongodbをインストールする方法ステップバイステップの説明
インストールする前にURLを収集する必要があります。このためには、MongoDBダウンロードセンターコミュニティサイトにアクセスし、オペレーティングシステムとバージョンを選択する必要があります(この場合、Linux 64ビットレガシー、tarballが必要です)。ダウンロードボタンが用意されていますが、ターゲットマシンから直接使用できる直接URLも下に表示されます。
これにより、ターゲットからインターネットにアクセスできる場合は、ブラウザからパッケージをダウンロードしてからターゲットマシンに転送する必要がなくなります。そのため、URLをメモしておいてください。まもなく使用します。
- バイナリは
/opt
に保存します 。ターゲットマシンで、次のディレクトリに入ります:# cd /opt
そして、以前に取得したURLを
wget
に提供して、tarballをダウンロードします。 :# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.5.tgz --2019-01-03 16:49:59-- https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.5.tgz Resolving fastdl.mongodb.org (fastdl.mongodb.org)... 52.222.150.27, 52.222.150.229, 52.222.150.45, ... Connecting to fastdl.mongodb.org (fastdl.mongodb.org)|52.222.150.27|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 73214518 (70M) [application/x-gzip] Saving to: 'mongodb-linux-x86_64-4.0.5.tgz' mongodb-linux-x86_64-4.0.5.tgz 100%[================================================================================================================>] 69.82M 3.12MB/s in 23s 2019-01-03 16:50:22 (3.06 MB/s) - 'mongodb-linux-x86_64-4.0.5.tgz' saved [73214518/73214518]
- tarballを抽出します:
# tar -zxvf mongodb-linux-x86_64-4.0.5.tgz
そして、
mongodb
と呼ばれる覚えやすいシンボリックリンクを作成します 抽出されたディレクトリを指します(バージョン番号は異なる場合があります):# ln -s mongodb-linux-x86_64-4.0.5 mongodb
-
mongod
というサービスを実行するユーザーを作成します :# useradd mongod
- mongodbがデータを保存するディレクトリを作成します:
# mkdir -p /var/lib/mongo
-
mongod
を設定します バイナリとデータディレクトリの両方の所有者としてのユーザー:# chown -R mongod:mongod /opt/mongodb* # chown -R mongod: /var/lib/mongo
- mongodbの基本的な構成ファイルを作成します。作成されたデータディレクトリを指定し、デフォルトのポート
27017
でローカルホストでのみリッスンするようにデータベースを設定します 。テキストファイル/etc/mongod.conf
を作成します 次の内容で:storage: dbPath: "/var/lib/mongo" journal: enabled: true net: port: 27017 bindIp: "127.0.0.1"
dbPath
に注意してください 前のステップでデータストレージ用に作成したディレクトリに設定したパラメータ。 -
systemd
の場合 サービスを管理できるようにするために、テキストファイル/etc/systemd/system/mongod.service
を作成します。 最小限の構成で:[Unit] Description=MongoDB After=syslog.target network.target [Service] Type=simple User=mongod Group=mongod ExecStart=/opt/mongodb/bin/mongod --config /etc/mongod.conf [Install] WantedBy=multi-user.target
mongod
を使用したことに注意してください ユーザーとグループ、mongod
のカスタムパスを使用 バイナリであり、手動で作成した構成ファイルが含まれています。 -
selinux
を設定します リソースにアクセスするサービスをブロックするため、今のところ許容します。selinux
の設定 ポリシーはこのチュートリアルの範囲外です。# setenforce 0
-
systemd
に質問します リロードするには:systemctl daemon-reload
- サービスが認識されているかどうかを確認します:
# systemctl status mongod mongod.service - MongoDB Loaded: loaded (/etc/systemd/system/mongod.service; disabled; vendor preset: disabled) Active: inactive (dead)
- サービスを開始する準備ができました:
# systemctl start mongod
- ステータスを確認します。すべてがうまくいけば、次のようになります。
# systemctl status mongod mongod.service - MongoDB Loaded: loaded (/etc/systemd/system/mongod.service; disabled; vendor preset: disabled) Active: active (running) since Thu 2019-01-03 17:01:48 CET; 4s ago Main PID: 2993 (mongod) Tasks: 23 (limit: 12544) Memory: 45.3M CGroup: /system.slice/mongod.service 2993 /opt/mongodb/bin/mongod --config /etc/mongod.conf
-
mongo shell
を使用してサービスをテストできます 、MongoDBに付属のコマンドラインインターフェイス。アクセスできるようにするには、抽出したバイナリを$PATH
に含める必要があります。 。怠惰な管理者として、私たちはこれを1回だけ、永続的な方法で行います。次の行を/root/.bash_profile
に追加します 、前 最後の「exportPATH」行:## mongodb PATH=$PATH:/opt/mongodb/bin
そして、スクリプトを実行します:
# . ~/.bash_profile
-
mongo shell
を開始します :# mongo MongoDB shell version v4.0.5 connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb Implicit session: session { "id" : UUID("8999342b-e313-48e6-92c4-bf6b07cee0e4") } MongoDB server version: 4.0.5 Welcome to the MongoDB shell. For interactive help, type "help". [...] >
巨大なページ設定など、起動時の警告が表示される場合がありますが、このチュートリアルでは無視します。
mongo shell
、存在するデータベースを要求します:> db test
- そして、出荷された
test
に切り替えます データベース:> use test switched to db test
- その場で作成されたコレクションにいくつかのテストデータ(値「1」のキー「x」)を挿入します。
> db.exampleCollection.insertOne( { x: 1 } ); { "acknowledged" : true, "insertedId" : ObjectId("5c2e33040854f2d89326ae9c") } >
- 最後に、新しいコレクション内のデータをクエリして、キーと値のペアが正常に保存されていることを確認します。
> db.getCollection("exampleCollection").find().pretty(); { "_id" : ObjectId("5c2e4c2fd129ceef6a6c6112"), "x" : 1 } >