windows下mongodb設置用戶名密碼&用python連接

windows下mongodb設置用戶名密碼&用python連接


本文博客鏈接:http://blog.csdn.net/jdh99,作者:jdh,轉載請註明.

 

環境:

主機:WIN10

python版本:3.5

mongodb版本:3.4.2

開發環境:pyCharm


mongodb設置用戶名密碼:

  • 編寫mongodb配置文件mongodb.conf
dbpath=F:\test\db1
logpath=F:\test\log\mongodb.log
logappend=true
bind_ip=127.0.0.1
port=27019
#fork=true
master=true
auth=false
注意:設置用戶名密碼前將auth參數設置爲false

  • 在命令行窗口運行mongodb服務器
輸入命令:mongod -f f:/test/mongodb.conf

  • 在命令行窗口運行shell界面配置用戶名密碼
注意:直接輸入mongo連接數據庫默認ip是127.0.01,端口是270717
輸入命令:mongo.exe mongodb://localhost:27019

  • 在shell界面配置賬號管理員root,利用此賬號可以增加其他賬號
注意:賬號管理員沒有讀寫的權限,只能增加其他賬號
輸入命令:use admin
輸入命令:db.createUser({user:"root",pwd:"root",roles:[{"role":"userAdminAnyDatabase","db":"admin"}]}) 

  • 在shell界面給數據庫db1增加賬號jdh11:
輸入命令登陸賬號管理員:db.auth("root", "root")
輸入命令:db.createUser({user:"jdh11",pwd:"123456",roles:[{"role":"readWrite","db":"db1"}]})
權限說明:
userAdminAnyDatabase 有分配角色和用戶的權限,沒有讀寫的權限
root  超級管理員
readWrite  有讀寫權限
read  有讀權限

  • 重新運行mongodb服務器
將mongodb.conf中的auth設置爲true
輸入命令:mongod -f f:/test/mongodb.conf

重新運行shell:
輸入命令:mongo.exe mongodb://localhost:27019

  • 測試賬號是否成功:
輸入命令切換到db1數據庫:use db1
輸入show collections,彈出錯誤:
> show collections
2017-02-11T13:18:46.524+0800 E QUERY    [thread1] Error: listCollections failed: {
        "ok" : 0,
        "errmsg" : "not authorized on db1 to execute command { listCollections: 1.0, filter: {} }",
        "code" : 13,
        "codeName" : "Unauthorized"
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype._getCollectionInfosCommand@src/mongo/shell/db.js:805:1
DB.prototype.getCollectionInfos@src/mongo/shell/db.js:817:19
DB.prototype.getCollectionNames@src/mongo/shell/db.js:828:16
shellHelper.show@src/mongo/shell/utils.js:748:9
shellHelper@src/mongo/shell/utils.js:645:15
@(shellhelp2):1:1

登陸賬號:
注意:要切換到admin數據庫登陸,完整登陸流程:
> use admin
switched to db admin
> db.auth("jdh11", "123456")
1
> use db1
switched to db db1
> show collections
col
>

用python連接mongodb數據庫
配置數據庫參數代碼:
HOST = '0.0.0.0'
PORT = 12800

DATABASE_IP = '127.0.0.1'
DATABASE_PORT = 27019
DATABASE_NAME = 'db1'


連接代碼:

from pymongo import MongoClient
from config import *

client = MongoClient(DATABASE_IP, DATABASE_PORT)
db_auth = client.admin
db_auth.authenticate("jdh11", "123456")
db = client[DATABASE_NAME]

collection = db.col
print(list(collection.find({'name': 'jdh11'})))

參考鏈接:
  1. MongoDB 教程
  2. Mongodb 3.2 開啓密碼認證
  3. Python數據庫-鏈接mongodb帶用戶驗證
  4. Tutorial



發佈了202 篇原創文章 · 獲贊 1952 · 訪問量 163萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章