Docker を使用して MongoDB をインストールする

1.MongoDBとは

コンセプト: MongoDB は、分散ファイル ストレージに基づいたデータベースです。リレーショナル データベースと非リレーショナル データベースの中間の製品であり、非リレーショナル データベースの中で最も機能が高く、リレーショナル データベースに最も似ています。
目的: Web アプリケーションにスケーラブルな高性能データ ストレージ ソリューションを提供する

2.MongoDBのインストール

ここでは docker を使用して MongoDB をインストールします
docker の使用方法については、https: //blog.csdn.net/AAIT11/article/details/130075122を参照してください。

1. MongoDB イメージをプルします

dokcer pull mongo

デフォルトでは、最新のイメージがプルされます
画像.png

2.MongoDBコンテナを作成する

docker run -dit --name mongo -p 27017:27017 mongo:latest --auth

パラメータの説明

  • -i: コンテナを実行することを意味します
  • -t: コンテナが起動後にコマンドラインに入る事を示します。
  • -d: バックグラウンドで実行するデーモン モードでコンテナを作成します。
  • -name: コンテナ名
  • -p 27017:27017: ポート マッピング (ホスト ポート: コンテナ ポート)、mongoDB のデフォルトはポート 27017
  • –auth: mongo へのアクセスには認証 (アカウント パスワード アクセス) が必要です。このパラメータは最後に配置する必要があります。そうでない場合はエラーが報告されます。

画像.png

3. コンテナに入り、mongoDB にアクセスします。

docker exec -it mongo /bin/mongosh

画像.png

注:
MongoDB6.0 以降の場合:
docker exec -it mongo /bin/mongosh
6.0 より前のバージョンの場合:
docker exec -it mongo /bin/mongo

3. MongoDB ユーザーを作成する

1.mongoユーザー権限

read:允许用户读取指定数据库
readWrite:允许用户读写指定数据库
dbAdmin:允许用户在指定数据库中执行管理函数,如索引创建、删除、查看统计或访问system.profile
dbOwner:允许用户在指定数据库中执行任意操作,增、删、改、查等
clusterAdmin:只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限
readAnyDatabase:只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase:只在admin库中可用,赋予用户所有数据库的读权限
userAdminAnyDatabase:只在admin数据库中可用,赋予用户所有数据库userAdmin权限
dbAdminAnyDatabase: 只在admin数据库中可用,赋予用户所有数据库dbAdmin权限
root:只在admin数据库中可用。超级管理员用户,超级权限

2. ユーザーを作成する

要件: テスト ユーザーを作成し、権限を付与します。

  1. アカウントを作成する
db.createUser({
    
     user:'admin',pwd:'123456',roles:[ {
    
     role:'userAdminAnyDatabase', db: 'test'},"readWriteAnyDatabase"]});

画像.png

  1. ユーザーを認証する
db.auth("admin","123456")

画像.png

  1. アカウントとパスワードを使用してデータベースにログインします

直前にコマンドラインを入力したため、最初にコンテナを終了します。

docker exec -it mongo /bin/bash
mongosh -u admin -p 123456 

画像.png

  1. ユーザーを表示する
#切换到admin
use admin
# 查看用户
show users

画像.png

  1. 権限を確認する
show dbs

画像.png
アカウントのパスワードを入力してmongoShellからコマンドを実行しないと、権限がないためデータベース内のものが表示されません。
a0b4c9f0494945b97dc202e69c3c00e.png

おすすめ

転載: blog.csdn.net/AAIT11/article/details/130107136