GNU/Linux >> Linux の 問題 >  >> Panels >> Panels

Ubuntu18.04にMongoDBをインストールする方法

この記事では、MongoDBをインストールし、そのサービスを管理し、Ubuntu18.04VPSでリモート接続を許可する方法を説明します。

MongoDBは、NoSQLファミリーに属するオープンソースのデータベース管理システムです。 NoSQLは、従来のテーブルベースのSQLデータベース(MySQLおよびPostgreSQL)とは異なります。データは、事前定義されたスキーマのない柔軟なJSONのようなドキュメントに保存されるため、ダウンタイムなしでデータベースに大きな変更を加えることができます。インストールを始めましょう。

ステップ1:サーバーに接続する

始める前に、rootユーザーとしてSSH経由でサーバーに接続する必要があります。これを行うには、次のコマンドを使用します。

ssh root@IP_Address -p port_number

IP_Addressとport_numberを実際のサーバーのIPアドレスとSSHポート番号に置き換える必要があります。 rootアカウントにアクセスできない場合は、代わりにsudo権限を持つアカウントを使用できます。

ログインしたら、次のコマンドを実行して、サーバーが最新であることを確認します。

sudo apt update
sudo apt upgrade

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

Ubuntuの公式ソフトウェアパッケージリポジトリには、MongoDBのバージョン3.6.3が付属していますが、この記事では、利用可能な最新バージョンであるMongoDB4.0をインストールします。ただし、MongoDBの新しいバージョンが公式Webサイトで利用可能かどうかはいつでも確認できます。

UbuntuにMongoDB4.0Community Editionをインストールするには、パッケージ管理システムで使用される公開鍵をインポートする必要があります。次のコマンドでそれを行うことができます:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4

これでキーがインポートされたので、次の行でMongoDBリポジトリを追加できます:

sudo add-apt-repository 'deb [arch=amd64] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse'

次に、パッケージリストを更新します:

sudo apt update

この時点で、リポジトリが有効になり、パッケージリストが更新されます。次のコマンドを入力して、MongoDBCEパッケージのインストールを続行できます。

sudo apt install mongodb-org

mongodb-org-server、mongodb-org-mongos、mongodb-org-shell、mongodb-org-toolsパッケージは、mongodb-orgパッケージの一部としてシステムにインストールされます。

これで、MongoDB 4.0CommunityEditionがサーバーにインストールされました。次に、MongoDBサービスを開始し、起動時に開始できるようにする必要があります。

sudo systemctl start mongod
sudo systemctl enable mongod

MongoDBのインストールを確認するには、次のコマンドを入力して接続ステータスを確認します。

mongo --eval 'db.runCommand({ connectionStatus: 1 })'

次のような出力が必要です:

MongoDB shell version v4.0.6
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("c806e0e1-ab30-4d41-b882-026c09d2893f") }
MongoDB server version: 4.0.6
{
"authInfo" : {
"authenticatedUsers" : [ ],
"authenticatedUserRoles" : [ ]
},
"ok" : 1
}

おめでとうございます。サーバーにMongoDBが正常にインストールされました。次のステップでは、MongoDBサーバーの構成について説明します。

ステップ3:MongoDBの構成

mongod.confを変更することで、MongoDBインスタンスを構成できます。 /etc/にあるファイル 。 Nanoを使用してファイルを編集しますが、必要に応じて、お好みのテキストエディタを使用できます。

sudo nano /etc/mongod.conf

リモート接続を可能にし、MongoDBの安全性を高めるために、構成ファイルにいくつかの変更を加えます。 MongoDBはデフォルトで、ローカルホスト(IP 127.0.0.1)のポート27017でのみ接続をリッスンします。リモートMongoDB接続を許可するには、サーバーのIPアドレスをMongoDB構成ファイルに追加する必要があります。これを以下の例として示します:

bind_ip = 127.0.0.1, your_server_ip
#port = 27017

security:
authorization: enabled

また、MongoDBデータベースへのユーザーアクセスを規制する認証オプションも含まれています。承認オプションが有効になっていない場合、各ユーザーはすべてのMongoDBデータベースにアクセスでき、セキュリティ上のリスクとなる任意のアクションを実行できます。変更をMongoDB構成ファイルに保存した後、変更を有効にするには、次のコマンドを使用してMongoDBサービスを再起動する必要があります。

sudo systemctl restart mongod

ステップ4:管理MongoDBユーザーの作成

MongoDBサーバーを構成し、認証オプションを有効にしたので、MongoDBインスタンスの管理に使用される管理用MongoDBユーザーアカウントを作成する必要があります。

mongoシェルにアクセスするには、次のように入力します。

mongo

次に、次のコマンドを使用してadminデータベースに接続します。

use admin

出力:

switched to db admin

次のコマンドを実行して、userAdminAnyDatabaseロールを持つmongo_adminという新しい管理ユーザーを作成します。

db.createUser(
{
user: "mongo_admin", 
pwd: "Strong_Pas$w0rd", 
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)

そして、これを出力として取得します:

Successfully added user: {
"user" : "mongo_admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}

「Strong_Pas$w0rd」を実際の強力なパスワードに置き換えることを忘れないでください。これで、mongoシェルを終了できます:

quit()

ステップ5:管理ユーザーのアクセスを確認する

変更を確認するために、作成したmongo_adminユーザーを使用してmongoシェルにアクセスします。

mongo -u mongo_admin -p --authenticationDatabase admin

use admin

show users

また、これまでのすべての手順を実行した場合は、次の出力が得られるはずです。

出力:

> use admin
switched to db admin
> show users
{
"_id" : "admin.mongo_admin",
"user" : "mongo_admin",
"db" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
],
"mechanisms" : [
"SCRAM-SHA-1",
"SCRAM-SHA-256"
]
}

また、mongoシェルにアクセスするときに(引数なしで)ユーザーを一覧表示し、以前に使用したのと同じコマンドを使用することもできます。

ステップ6:ファイアウォールでのリモートMongoDBアクセスを許可する

このステップでは、ファイアウォールでMongoDBを許可することにより、MongoDBへのリモートアクセスを提供します。サーバーでファイアウォールを使用していない場合は、この手順をスキップできます。 MongoDBのデフォルトのポートは27017であるため、この例では、このポートがファイアウォールを通過できるようにする方法を示します。

UFW(Uncomplicated Firewall)を使用している場合は、MongoDBにリモートアクセスできるようにする方法に関する次のヒントを使用できます。

どこからでもデフォルトポート(27017)でMongoDBにアクセスできるようにするには、次のコマンドを使用できます。

sudo ufw allow 27017

特定のIPアドレスからのみデフォルトポート27017でMongoDBへのアクセスを許可するには、次のコマンドを使用できます。

sudo ufw allow from allowed_IP_address/32 to any port 27017

使用する実際のIPアドレスでallowed_IP_addressを変更する必要があります。

ファイアウォール設定への変更は、次のコマンドで確認できます:

sudo ufw status

出力:

Status: active

To                         Action      From
--                         ------      ----
27017                      ALLOW       Anywhere
OpenSSH                    ALLOW       Anywhere
27017 (v6)                 ALLOW       Anywhere (v6)
OpenSSH (v6)               ALLOW       Anywhere (v6)

ステップ7:MongoDBに接続する

MongoDBをインストールして構成したので、MongoDBへの接続方法についていくつかの異なる方法を説明する必要があります。 Mongoシェルにアクセスする前に、MongoDB構成が機能することを確認する必要があります。

デフォルトポートのローカルMongoDBインスタンス

mongoシェルへの最も基本的な接続は、引数なしでmongoコマンドを実行することです。

mongo

デフォルト以外のポート上のローカルMongoDBインスタンス

特定のポートでMongoシェルに接続する場合は、次を使用できます。

mongo --port port_number

port_numberを実際のポート番号に置き換えるだけです。

リモートホスト上のMongoDBインスタンス

MongoDBインスタンスを使用してリモートホストマシンに接続する必要がある場合は、次の方法を使用できます。

接続文字列を指定できます。

mongo mongodb://your_domain_name.com:port_number

コマンドラインオプション–host

を使用できます
mongo --host your_domain_name.com:port_number

または、–host と–port

を使用できます
mongo --host your_domain_name.com --port port_number

認証付きのMongoDBインスタンス

これらの例を使用して、認証が必要なMongoDBインスタンスに接続する方法を示します。

接続文字列でユーザー名、認証データベース、ポート番号を定義できます。また、接続文字列でパスワード(オプション)を定義することもできます。パスワードが接続文字列で定義されていない場合、シェルはパスワードの入力を求めます。

mongo --host mongodb://user@your_domain_name.com:port_number/?authSource=admin

–username 、– password、および–authenticationDatabaseコマンドラインオプションを使用できます。

mongo --username user --password --authenticationDatabase admin --host your_domain_name.com --port port_number

MongoDBレプリカセットに接続する

接続文字列でレプリカセット名とメンバーを指定できます。

mongo mongodb://your_domain_name.com.local:port_number,mongodb1.your_domain_name.com.local:port_number,mongodb2.your_domain_name.com.local:port_number/?replicaSet=replA

DNSシードリスト接続形式を使用している場合は、接続文字列を指定できます。

mongo "mongodb+srv://server.your_domain_name.com/"

–host<レプリカセット名>/ 、…からレプリカセット名とメンバーを指定できます。この例では、replAという名前のレプリカセットに接続します。

mongo --host replA/your_domain_name.com.local:port_number,mongodb1.your_domain_name.com.local:port_number,mongodb2.your_domain_name.com.local:port_number

TLS/SSL接続

接続文字列でssl=trueオプションを指定できます。

mongo mongodb://your_domain_name.com.local:port_number,mongodb1.your_domain_name.com.local:port_number,mongodb2.your_domain_name.com.local:port_number/?replicaSet=replA&ssl=true

または、コマンドラインで–sslを指定し、replAという名前のレプリカセットに接続する方法について前の例を使用できます。

mongo --ssl --host replA/your_domain_name.com.local:port_number,mongodb1.your_domain_name.com.local:port_number,mongodb2.your_domain_name.com.local:port_number

上記のコマンドを使用する場合は、コマンドのyour_domain_name.com、host_name、user、replAなどの値を実際の値に置き換えることを忘れないでください。

ステップ8:MongoDBをアンインストールする

何らかの理由でMongoDBが気に入らず、システムから削除する必要がある場合は、次のコマンドに従うことができます。

sudo service mongod stop
sudo apt purge mongodb-org*
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb

この記事では、MongoDBのインストール方法、ファイアウォールのカスタマイズ方法、管理者ユーザーの作成方法、リモートアクセスの有効化方法、MongoDBへの接続方法、およびMongoDBのアンインストールと削除方法について説明しました。これで、この知識を使用して、このすばらしいアプリケーションでプロジェクトを構築することから始めることができます。

もちろん、Ubuntu Hostingのお客様の1人である場合、またはManaged MongoDB Hostingプランのいずれかをお持ちの場合は、Ubuntu18.04VPSにMongoDBをインストールする必要はありません。管理者に聞いて座ってリラックスしてください。管理者はすぐにUbuntu18.04にMongoDBをインストールします。

PS Ubuntu18.04VPSにMongoDBをインストールする方法に関するこの投稿が気に入った場合 、下のボタンを使用してソーシャルネットワークで友達と共有するか、コメントセクションにコメントを残してください。ありがとう。

ここで利用可能な新しいバージョン:Ubuntu20.04およびCentOS8にMongoDBをインストールする方法


Panels
  1. Ubuntu16.04にRをインストールする方法

  2. Ubuntu16.04にMongoDBをインストールする方法

  3. Ubuntu20.04にMongoDBをインストールする方法

  1. Ubuntu18.04にMongoDBをインストールする方法

  2. Ubuntu18.04にGoをインストールする方法

  3. Ubuntu 18.04 に MongoDB をインストールする方法

  1. Ubuntu18.04にMongoDBをインストールする方法

  2. Ubuntu20.04にRをインストールする方法

  3. Ubuntu 22.04 に MongoDB をインストールする方法