MongoDBは、エンタープライズレベルのデータベースの高性能、高可用性、および自動スケーリングを提供するNoSQLデータベースです。 MongoDBはNoSQLデータベースであるため、SQL(Structured Query Language)を使用してデータを挿入および取得することはできません。また、MySQLやPostgresなどのテーブルにデータを格納することもありません。データは、JSON形式の「ドキュメント」構造(MongoDBではBSONと呼ばれます)で保存されます。 MongoDBは2009年に導入され、現在MongoDBInc.によって開発されています。
MongoDBは、64ビットLTS(長期サポート)Ubuntuバージョンのパッケージのみを提供します。たとえば、14.04 LTS(信頼できる)、16.04 LTS(ゼニアル)、18.04 LTS(バイオニック)などです。
このチュートリアルでは、MongoDB4.0をUbuntu18.04LTSにインストールします。
- UbuntuServer18.04-64ビット
- root権限
このチュートリアルで行うこと:
- MongoDBをインストールする
- MongoDBを構成する
- 結論
Ubuntu18.04LTSにMongoDBをインストールします
ソフトウェアディストリビューターのGPGキーは、パッケージの一貫性と信頼性を確保するために、Ubuntuパッケージマネージャーapt(Advanced Package Tool)によって必要とされます。このコマンドを実行して、MongoDBキーをサーバーにインポートします。
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 68818C72E52529D4
次のコマンドを使用して、/ etc / apt /sources.list.d/にMongoDBリストファイルを作成します。
sudo echo "deb http://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
aptコマンドでリポジトリを更新します:
sudo apt-get update
これで、次のコマンドを入力してMongoDBをインストールできます:
sudo apt-get install -y mongodb-org
MongoDB aptインストーラーはSystemdのmongod.serviceファイルを自動的に作成したため、手動で作成する必要はありません。
MongoDBを起動し、起動時に開始するサービスとして追加します:
sudo systemctl start mongod
sudo systemctl enable mongod
次に、netstatコマンドを使用してMongoDBがポート27017で開始されていることを確認します。
sudo netstat -plntu
MongoDBのユーザー名とパスワードを構成する
MongoDBパッケージがインストールされると、データベースサーバーのユーザー名とパスワードを構成できます。
MongoDBのユーザー名とパスワードを設定する前に、サーバーでMongoDBシェルを開く必要があります。次のように入力してログインできます:
mongo
エラーが発生した場合グローバル初期化に失敗しました:BadValue無効またはユーザーロケールが設定されていません。 LANGおよび/またはLC_*環境変数が正しく設定されていることを確認してください。次のコマンドを試してください:
export LC_ALL=C
mongo
MongoDBシェルに入ったら、 adminという名前のデータベースに切り替えます。 :
use admin
次のコマンドでrootユーザーを作成します:
db.createUser({user:"admin", pwd:"admin123", roles:[{role:"root", db:"admin"}]})
説明: パスワードadmin123を使用してユーザーadminを作成し、rootとして権限/役割を持ち、データベースは adminです。 。
次に、exitと入力してMongoDBシェルを終了します。
exit
そして、Linuxシェルに戻りました。
エディターでmongodbサービスファイル「/lib/systemd/system/mongod.service」を編集します。
sudo nano /lib/systemd/system/mongod.service
' ExecStart '9行目、新しいオプションを追加します' -auth '。
ExecStart=/usr/bin/mongod --auth --config /etc/mongod.conf
サービスファイルを保存してnanoを終了します。
systemdサービスをリロードします:
sudo systemctl daemon-reload
次に、MongoDBを再起動し、作成したユーザーに接続します。
sudo service mongod restart
次のコマンドでMongoDBシェルに接続します:
mongo -u admin -p admin123 --authenticationDatabase admin
次のような出力が表示されます:
外部アクセスを有効にして、UFWファイアウォールを構成します
UFWはUbuntuのデフォルトのファイアウォールです。この章では、MongoDBへの外部アクセスを許可するようにUFWを構成する方法を示します。
UFWステータスを確認する
sudo ufw status
結果が次の場合:
Status: inactive
このコマンドでUFWを有効にし、SSHで接続されている場合は、最初にSSHポートを開きます。
sudo ufw allow ssh
sudo ufw enable
次のステップに進む前に。
セキュリティ上の理由から、データベースへのアクセスが必要なIPアドレスからのみMongoDBポート27017へのアクセスを許可する必要があります。デフォルトでは、ローカルホストは常にアクセスできるため、IP127.0.0.1のMongoDBポートを開く必要はありません。
UFWファイアウォール構文
sudo ufw allow from <target> to <destination> port <port number>
UFWでMongoDBポートを開く
外部IP192.168.1.10からMongoDBへのアクセスを許可するには、次のコマンドを使用します:
sudo ufw allow from 192.168.1.10 to any port 27017
上記のコマンドのIPアドレスを、MongoDBへのアクセスを許可する外部IPに置き換えます。
任意のIPのMongoDBポートを開きたい場合、たとえばローカルネットワークで実行し、そのネットワーク内のすべてのシステムがMongoDBにアクセスできるようにする場合は、次のコマンドを使用します。
sudo ufw allow 27017
次のコマンドでUFWファイアウォールのステータスを確認します:
sudo ufw status
MongoDBはデフォルトでローカルホストをリッスンします。データベースに外部からアクセスできるようにするには、サーバーのIPアドレスでもリッスンするようにデータベースを再構成する必要があります。
nanoエディターでmongod.confファイルを開きます:
sudo nano /etc/mongod.conf
次のように、bind_ip行にサーバーのIPアドレスを追加します。
# network interfaces
net:
port: 27017
bindIp: 127.0.0.1,192,168.1.100
192.168.1.100をサーバーのIPに置き換えてから、MongoDBを再起動して変更を適用します。
sudo service mongod restart
これで、ネットワーク経由でMongoDBデータベースサーバーにアクセスできます。
このチュートリアルは、Howtoforgeサブスクライバー向けにOVA/OVF形式ですぐに使用できる仮想マシンとして利用できます。 VM形式は、VMWare、Virtualbox、およびovaまたはovf形式をインポートできるその他のツールと互換性があります。上部の右側のメニューにダウンロードリンクがあります。ファイル名をクリックしてダウンロードを開始します。
VMのログインの詳細は次のとおりです。
SSHログイン
ユーザー名:管理者
パスワード:howtoforge
管理者ユーザーにはsudo権限があります。
最初の起動後にパスワードを変更してください。
VMは静的IP192.168.1.100用に構成されています。静的IPを変更する方法については、こちらをご覧ください。
MongoDBは、高性能、高可用性、自動スケーリングを提供する有名なNoSQLデータベースです。これは、SQLを使用してデータを設定および取得しないため、MySQL、PostgreSQL、SQLiteなどのRDBMSとは異なります。 MongoDBは、BSON(追加情報を含むJSONのバイナリ表現)と呼ばれる「ドキュメント」にデータを格納します。 MongoDBは、64ビットの長期サポートUbuntuリリースでのみ使用できます。