このブログでは、いくつかのデータベースシステムについて説明しましたが、その中で最も人気のあるのはMariaDBとMySQLです。これらは、通常XamppまたはLamppに含まれているシステムです。 今回はお話します 別のシステムは MongoDB。
MongoDBは オープンソースのドキュメント指向のNoSQLデータベースシステム、 これは 高性能のデータ永続性のために設計された最新のドキュメントデータベース管理システム、 NoSQL技術のテクノロジーに基づく高可用性と自動スケーリング。
リレーショナルデータベースで行われるようにデータをテーブルに保存する代わりに、MongoDBはデータ構造をドキュメントに保存します、これはフィールドと値のペアで構成されるデータ構造です(MongoDBドキュメントはJSONオブジェクトに相当します)。
高性能と優れたスケーラビリティ特性を提供するため、強力でミッションクリティカルで可用性の高いデータベースを必要とする最新のアプリケーションの構築に使用されています。
UbuntuへのMongoDBのインストール
このデータベースシステムをシステムにインストールするには、 ターミナルを開いて、その中で次のコマンドを実行するだけです。
sudo apt install mongodb
インストールが完了しました。 MongoDBサービスはsystemd経由で自動的に開始されます プロセスはポート27017で実行されます。次のコマンドを使用してステータスを確認できます。
sudo systemctl status mongodb
そうでない場合は、次のコマンドで強制的に開始できます。
sudo systemctl start mongodb
MongoDBへのリモート接続を有効にする
MongoDBデータベースシステムはデフォルトでポート27017を使用します。これを開く必要があります リモート接続を受け入れるには、次のコマンドでのみ有効にします。
sudo ufw allow 27017
デフォルトでは、ポート27017はローカルアドレス127.0.0.1からのみアクセスできます。 MongoDBへのリモート接続を許可するには、ファイルにサーバーのIPアドレスを追加する必要があります /etc/mongodb.conf
次のコマンドで編集するだけです。
sudo nano
そして、私たちはこれに似たものを見ることができます:
bind_ip = 127.0.0.1, your_server_ip #port = 27,017
サーバーからのデータで編集します。
どこからでもMongoDBへのアクセスを許可し、データベース内のデータへの無制限のアクセスを提供します。 したがって、MongoDBポートの場所固有のデフォルトIPアドレスへのアクセスを許可することをお勧めします。
sudo ufw allow from your_server_IP/32 to any port 27017 sudo ufw status
これが完了したら、サービスを再起動して、新しい変更が最初に読み込まれるようにするだけで十分です。これを行うには、次のようにします。
sudo systemctl restart mongodb
パスワードを使用してMongoDBでユーザーを作成します
デフォルトでは、データベースへのアクセスは非常に簡単なので、これを強化するために、パスワードを使用してユーザーを作成できます。
MongoDBはSCRAM認証メカニズムを使用します デフォルトでは。 システムでSCRAMを使用すると、提供されたユーザー資格情報がユーザー名、パスワード、および認証データベースと照合されます。
次のコマンドでデータベースコンソールを起動するだけです。
Mongo
次の方法で既存のデータベースのリストを作成できます。
show dbs
ユーザーと機能を管理できるユーザーを作成できます ユーザーの作成、ユーザーロールの付与または取り消し、税関ロールの作成または変更など。
入力するだけです
use admin
そして、次のコマンドでユーザーを作成します、ユーザーの名前「root」とパスワード「password」を、適切と思われるアクセス基準に置き換えます。
db.createUser({user:"root", pwd:"password", roles:[{role:"root", db:"admin"}]})
これが完了したら、認証方法を有効にする必要があります このために、次のファイルを編集します。
sudo nano /lib/systemd/system/mongodb.service
そして次の行を探します:
ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
と 次のように編集します。
ExecStart=/usr/bin/mongod --auth --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
現在 データベースで再起動するだけです
systemctl daemon-reload sudo systemctl restart mongodb sudo systemctl status mongodb
Y 認証方法を次の方法でテストします。
mongo -u "usuario" -p --authenticationDatabase "contraseña"
このエラーで私を助けてください。
2021-03-24T21:33:16.233 + 0000 E QUERY [thread1]エラー:listDatabasesが失敗しました:{
«ok»:0、
"Errmsg": "管理者がコマンドを実行する権限がありません{listDatabases:1.0、$ db:\" admin \ "}"、
「コード」:13、
"CodeName": "無許可"
}:
_getErrorWithCode @ src / mongo / shell / utils.js:25:13
Mongo.prototype.getDBs@src/mongo/shell/mongo.js:65:1
shellHelper.show@src/mongo/shell/utils.js:816:19
shellHelper@src/mongo/shell/utils.js:706:15
@(shellhelp2):1:1