Win 10でMongoDBをインストールする
12204 ワード
1、MongoDB取得、インストール
1.1ダウンロード
MongoDBは現在IT業界で非常に流行している非関係型データベース(NoSql)であり、柔軟なデータストレージ方式が現在のIT従業員に人気がある.ここでは主にWindowsプラットフォームの下でMongoDBをインストールしてMongoDBの公式サイトをダウンロードしてリンクをダウンロードする方法を説明します
壁にされている場合はmongodb-win 32-x 86_をクリックしてください64-2008plus-ssl-3.4.1-signed.msiダウンロード.
1.2環境変数のインストールと設定
環境変数を手動で簡単に構成し、インストールに成功した後、mongodbディレクトリの下のbinディレクトリをpath変数に追加します.たとえば、次のようにします.
1.3インストールの設定
1.3.1 step1
データベースファイル格納ディレクトリを作成
1.3.2管理者モードがDOSに入る
1.3.2.1ディレクトリの切り替え
1.3.2.2ログファイルの作成
logディレクトリを指定する必要があるので、logディレクトリ
`これは、コマンドラインウィンドウでいくつかの起動情報が印刷され、最後の行が次のように表示されたときに起動に成功したことを示します.
1.3.2.3 Windowsサービスへのインストール
1.3.2.4サービスの開始
プロファイルを使用するのは残念ですが、公式にダウンロードしたインストールパッケージにはデフォルトのプロファイルはありません.プロファイルを使用するには自分で作成するしかありません.また、個人的にはMongoDBのプロファイルを管理するためにプロファイルを使用することをお勧めします.プロファイルを使用してデータベースファイル、ログファイル、その他のプロファイルを構成するのは一目瞭然です.
1.3.2.5プロファイル
ここにはいくつかの一般的な項目しか指定されていません.詳細は公式ドキュメントを参照してください.https://docs.mongodb.org/manual/reference/configuration-options/
通常起動
Windowsサービスとしてインストール
サービスの開始
ブラウザを開くhttp://127.0.0.1:27017/インストールに成功したことを示す
SCを使用してWindowsサービスにインストール
Ubuntu下インストールUbuntu下インストールは非常に簡単で、1つのコマンドを実行すればいいので、何の構成も必要ありません.実行後、直接使用します.
2、グラフィック管理ツール
adminMongo環境ニーズNode.js(nvmでインストール)pm 2(
アクセステストブラウザを開き、アクセスhttp://127.0.0.1:1234/を選択すると、インストールが正常に構成されたことを示します.Connection name=>接続名を使用して任意にConnection string=>
接続方法:
3、3.X認証メカニズム
3.1管理者アカウントの作成権限
アカウントを作成する必要がある場合は、grant権限、すなわち、アカウント管理の権限が必要です.注意点、アカウントはライブラリについて行くので、指定ライブラリで許可され、指定ライブラリでも検証(auth)しなければなりません.
上の'>'の後に実行されるコマンドがあります.
user:ユーザー名
pwd:パスワード
roles:ユーザーのロールを指定し、空の配列で新しいユーザーに空のロールを設定できます.rolesフィールドでは、組み込みロールとユーザー定義ロールを指定できます.roleのキャラクターは次のように選択できます.
具体的な役割:
3.2ロールユーザーの作成
ユーザーを管理するuserAdminAnyDatabaseロールが確立されたばかりで、このロールを使用してユーザーを作成、削除できます.検証:authパラメータをオンにする必要があります.
3.3テスト
上に2つのアカウントが作成されました.検証するには、検証の前提にセットが必要です.
3.4スーパーユーザー
スーパー権限はありますか?権限を付与するだけでなく、集合を任意に操作できますか?答えは肯定的ですが、使用をお勧めしません.それはroleキャラクタがrootに設定されていることです.
アカウントは現在許可が必要なデータベースの下で許可されているので、現在のデータベースの下にいなければどうなりますか?
さらに、データベース・アカウントがデータベースに従って行われ、認証が作成される場所について説明します.
3.5管理
こんなにたくさんのアカウントを作成したのに、どうやってすべてのアカウントを表示しますか?
バックアップリストアそのロールを使用するアカウント?以前に作成したアカウントzjy:testライブラリの読み書き権限;zjyr:testライブラリ読み取り権限
1.1ダウンロード
MongoDBは現在IT業界で非常に流行している非関係型データベース(NoSql)であり、柔軟なデータストレージ方式が現在のIT従業員に人気がある.ここでは主にWindowsプラットフォームの下でMongoDBをインストールしてMongoDBの公式サイトをダウンロードしてリンクをダウンロードする方法を説明します
壁にされている場合はmongodb-win 32-x 86_をクリックしてください64-2008plus-ssl-3.4.1-signed.msiダウンロード.
1.2環境変数のインストールと設定
環境変数を手動で簡単に構成し、インストールに成功した後、mongodbディレクトリの下のbinディレクトリをpath変数に追加します.たとえば、次のようにします.
1.3インストールの設定
1.3.1 step1
データベースファイル格納ディレクトリを作成
D:\mongodb\data\db
などのデータベースファイルの格納場所を作成します.mongodbサービスを開始する前に、データベースファイルの保存フォルダを作成する必要があります.そうしないと、コマンドは自動的に作成されず、正常に起動できません.1.3.2管理者モードがDOSに入る
1.3.2.1ディレクトリの切り替え
$ cd D:\MongoDB\bin
$ mongod --dbpath D:\MongoDB\data\db
# --dbpath , ,
2017-05-29T17:23:16.752+0800 I NETWORK [thread1] waiting for connections on port 27017
1.3.2.2ログファイルの作成
logディレクトリを指定する必要があるので、logディレクトリ
D:\MongoDB\data\logs\mongodb.log
を作成します.$ mongod --dbpath D:\MongoDB\data\db --logpath=D:\MongoDB\data\logs\mongodb.log --logappend
`これは、コマンドラインウィンドウでいくつかの起動情報が印刷され、最後の行が次のように表示されたときに起動に成功したことを示します.
2017-05-29T17:23:16.752+0800 I NETWORK [thread1] waiting for connections on port 27017
1.3.2.3 Windowsサービスへのインストール
$ sc create MongoDB binPath= "D:\MongoDB\bin\mongod.exe --service --dbpath D:\MongoDB\data\db --logpath=D:\MongoDB\data\logs\mongodb.log --logappend"
1.3.2.4サービスの開始
$ net start MongoDB
プロファイルを使用するのは残念ですが、公式にダウンロードしたインストールパッケージにはデフォルトのプロファイルはありません.プロファイルを使用するには自分で作成するしかありません.また、個人的にはMongoDBのプロファイルを管理するためにプロファイルを使用することをお勧めします.プロファイルを使用してデータベースファイル、ログファイル、その他のプロファイルを構成するのは一目瞭然です.
D:\MongoDB
D:\MongoDB\data
D:\MongoDB\data\logs
D:\MongoDB\etc
D:\MongoDB\etc\mongodb.conf
1.3.2.5プロファイル
dbpath=D:\MongoDB\data\db #
logpath=D:\MongoDB\logs\mongodb.log #
logappend=true # , mongodb ,
journal=true # ,
quiet=true # , false
port=27017 # 27017
ここにはいくつかの一般的な項目しか指定されていません.詳細は公式ドキュメントを参照してください.https://docs.mongodb.org/manual/reference/configuration-options/
通常起動
$ mongod --config D:\MongoDB\etc\mongodb.conf
Windowsサービスとしてインストール
$ mongod --config D:\MongoDB\etc\mongodb.conf --install
サービスの開始
$ net start MongoDB
ブラウザを開くhttp://127.0.0.1:27017/インストールに成功したことを示す
SCを使用してWindowsサービスにインストール
$ sc create MongoDB binPath= "D:\MongoDB\bin\mongod.exe --service --config=D:\MongoDB\etc\mongodb.conf"
Ubuntu下インストールUbuntu下インストールは非常に簡単で、1つのコマンドを実行すればいいので、何の構成も必要ありません.実行後、直接使用します.
$ sudo apt-get -y install mongodb
2、グラフィック管理ツール
adminMongo環境ニーズNode.js(nvmでインストール)pm 2(
npm -g pm2
)gitインストールとダウンロード開始$ git clone https://github.com/mrvautin/adminMongo.git
$ cd adminMongo && npm install
# pm2
$ cd adminMongo
$ pm2 start app.js
アクセステストブラウザを開き、アクセスhttp://127.0.0.1:1234/を選択すると、インストールが正常に構成されたことを示します.Connection name=>接続名を使用して任意にConnection string=>
接続方法:
mongodb://:@127.0.0.1:/
Connection options=>リンクオプションdocs接続に成功した後に1つのデータベースを作成してテストして勝手にいくつかのデータを追加して、データがJSONフォーマットであることに注意します3、3.X認証メカニズム
3.1管理者アカウントの作成権限
アカウントを作成する必要がある場合は、grant権限、すなわち、アカウント管理の権限が必要です.注意点、アカウントはライブラリについて行くので、指定ライブラリで許可され、指定ライブラリでも検証(auth)しなければなりません.
> mongo
> use admin
> db.createUser(
{
user: "dba",
pwd: "dba",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
上の'>'の後に実行されるコマンドがあります.
user:ユーザー名
pwd:パスワード
roles:ユーザーのロールを指定し、空の配列で新しいユーザーに空のロールを設定できます.rolesフィールドでは、組み込みロールとユーザー定義ロールを指定できます.roleのキャラクターは次のように選択できます.
Built-In Roles( ):
1. :read、readWrite;
2. :dbAdmin、dbOwner、userAdmin;
3. :clusterAdmin、clusterManager、clusterMonitor、hostManager;
4. :backup、restore;
5. :readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6. :root
// (dbOwner 、userAdmin、userAdminAnyDatabase)
7. :__system
具体的な役割:
Read:
readWrite:
dbAdmin: , 、 , system.profile
userAdmin: system.users , 、
clusterAdmin: admin , 。
readAnyDatabase: admin ,
readWriteAnyDatabase: admin ,
userAdminAnyDatabase: admin , userAdmin
dbAdminAnyDatabase: admin , dbAdmin 。
root: admin 。 ,
3.2ロールユーザーの作成
ユーザーを管理するuserAdminAnyDatabaseロールが確立されたばかりで、このロールを使用してユーザーを作成、削除できます.検証:authパラメータをオンにする必要があります.
root@test:/usr/local/mongo4# mongo --port=27020
MongoDB shell version: 3.0.4
connecting to: 127.0.0.1:27020/test
> show dbs; #### , 。
> use admin # , admin , admin 。
switched to db admin
> db.auth('dba','dba')
> show dbs;
admin 0.078GB
local 0.078GB
> use test # test
switched to db test
> db.createUser(
{
user: "zjyr",
pwd: "zjyr",
roles: [
{ role: "read", db: "test" } #
]
}
)
> db.createUser(
{
user: "zjy",
pwd: "zjy",
roles: [
{ role: "readWrite", db: "test" } #
]
}
)
> show users; #
3.3テスト
上に2つのアカウントが作成されました.検証するには、検証の前提にセットが必要です.
> db.abc.insert({"a":1,"b":2})
# , ,userAdminAnyDatabase , 。
root@zhoujinyi:/usr/local/mongo4# mongo --port=27020
MongoDB shell version: 3.0.4
connecting to: 127.0.0.1:27020/test
> use test
switched to db test
> db.auth('zjy','zjy') # readWrite
> db.abc.insert({"a":1,"b":2})
WriteResult({ "nInserted" : 1 })
> db.abc.insert({"a":11,"b":22})
WriteResult({ "nInserted" : 1 })
> db.abc.insert({"a":111,"b":222})
WriteResult({ "nInserted" : 1 })
> db.abc.find()
{ "_id" : ObjectId("559151a1b78649ebd8316853"), "a" : 1, "b" : 2 }
{ "_id" : ObjectId("559151cab78649ebd8316854"), "a" : 11, "b" : 22 }
{ "_id" : ObjectId("559151ceb78649ebd8316855"), "a" : 111, "b" : 222 }
> db.auth('zjyr','zjyr')
# read
> db.abc.insert({"a":1111,"b":2222})
#
> db.abc.find()
#
{ "_id" : ObjectId("559151a1b78649ebd8316853"), "a" : 1, "b" : 2 }
{ "_id" : ObjectId("559151cab78649ebd8316854"), "a" : 11, "b" : 22 }
{ "_id" : ObjectId("559151ceb78649ebd8316855"), "a" : 111, "b" : 222 }
3.4スーパーユーザー
スーパー権限はありますか?権限を付与するだけでなく、集合を任意に操作できますか?答えは肯定的ですが、使用をお勧めしません.それはroleキャラクタがrootに設定されていることです.
> db.auth('dba','dba')
> db.createUser(
{
user: "test",
pwd: "test",
roles: [
{ role: "root", db: "admin" } # root
]
}
)
> show users; #
{
"_id" : "admin.dba",
"user" : "dba",
"db" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
{
"_id" : "admin.test",
"user" : "test",
"db" : "admin",
"roles" : [
{
"role" : "root",
"db" : "admin"
}
]
}
> use admin
switched to db admin
> db.auth('test','test')
> use test
switched to db test
> db.abc.insert({"a":1,"b":2})
WriteResult({ "nInserted" : 1 })
> db.abc.insert({"a":1111,"b":2222}) #
WriteResult({ "nInserted" : 1 })
> db.abc.find()
{ "_id" : ObjectId("5591539bb78649ebd8316857"), "a" : 1, "b" : 2 }
{ "_id" : ObjectId("559153a0b78649ebd8316858"), "a" : 1111, "b" : 2222 }
> db.abc.remove({})
WriteResult({ "nRemoved" : 2 })
アカウントは現在許可が必要なデータベースの下で許可されているので、現在のデータベースの下にいなければどうなりますか?
> db
admin
> db.createUser(
{
user: "dxy",
pwd: "dxy",
roles: [
{ role: "readWrite", db: "test" }, # , admin test、abc
{ role: "readWrite", db: "abc" }
]
}
)
> show users;
{
"_id" : "admin.dba",
"user" : "dba",
"db" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
> use test
switched to db test
> db.auth('dxy','dxy') # admin , ,
Error: 18 Authentication failed.
> use admin
switched to db admin # , 。
> db.auth('dxy','dxy')
> use test
switched to db test
> db.abc.insert({"a":1111,"b":2222})
WriteResult({ "nInserted" : 1 })
> use abc
switched to db abc
> db.abc.insert({"a":1111,"b":2222})
WriteResult({ "nInserted" : 1 })
さらに、データベース・アカウントがデータベースに従って行われ、認証が作成される場所について説明します.
3.5管理
こんなにたくさんのアカウントを作成したのに、どうやってすべてのアカウントを表示しますか?
> use admin
switched to db admin
> db.auth('dba','dba')
> db.system.users.find().pretty()
{
"_id" : "admin.dba",
"user" : "dba",
"db" : "admin",
"credentials" : {
"SCRAM-SHA-1" : {
"iterationCount" : 10000,
"salt" : "KfDUzCOIUo7WVjFr64ZOcQ==",
"storedKey" : "t4sPsKG2dXnZztVYj5EgdUzT9sc=",
"serverKey" : "2vCGiq9NIc1zKqeEL6VvO4rP26A="
}
},
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
> db.system.users.find().count()
バックアップリストアそのロールを使用するアカウント?以前に作成したアカウントzjy:testライブラリの読み書き権限;zjyr:testライブラリ読み取り権限
root@test:~# mongodump --port=27020 -uzjyr -pzjyr --db=test -o backup
#
2015-06-29T11:20:04.864-0400 writing test.abc to backup/test/abc.bson
2015-06-29T11:20:04.865-0400 writing test.abc metadata to backup/test/abc.metadata.json
2015-06-29T11:20:04.866-0400 done dumping test.abc
2015-06-29T11:20:04.867-0400 writing test.system.indexes to backup/test/system.indexes.bson
root@test:~# mongorestore --port=27020 -uzjy -pzjy --db=test backup/test/ #
2015-06-29T11:20:26.607-0400 building a list of collections to restore from backup/test/ dir
2015-06-29T11:20:26.609-0400 reading metadata file from backup/test/abc.metadata.json
2015-06-29T11:20:26.609-0400 restoring test.abc from file backup/test/abc.bson
2015-06-29T11:20:26.611-0400 error: E11000 duplicate key error index: test.abc.$_id_ dup key: { : ObjectId('559154efb78649ebd831685a') }
2015-06-29T11:20:26.611-0400 restoring indexes for collection test.abc from metadata
2015-06-29T11:20:26.612-0400 finished restoring test.abc
2015-06-29T11:20:26.612-0400 done