windows下mongodb设置用户名密码&用python连接
本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.
环境:
主机:WIN10
python版本:3.5
mongodb版本:3.4.2
开发环境:pyCharm
mongodb设置用户名密码:编写mongodb配置文件mongodb.confdbpath=F:/test/db1logpath=F:/test/log/mongodb.loglogappend=truebind_ip=127.0.0.1port=27019#fork=truemaster=trueauth=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 collections2017-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:13DB.PRototype._getCollectionInfosCommand@src/mongo/shell/db.js:805:1DB.prototype.getCollectionInfos@src/mongo/shell/db.js:817:19DB.prototype.getCollectionNames@src/mongo/shell/db.js:828:16shellHelper.show@src/mongo/shell/utils.js:748:9shellHelper@src/mongo/shell/utils.js:645:15@(shellhelp2):1:1登陆账号:注意:要切换到admin数据库登陆,完整登陆流程:> use adminswitched to db admin> db.auth("jdh11", "123456")1> use db1switched to db db1> show collectionscol>用python连接mongodb数据库配置数据库参数代码:HOST = '0.0.0.0'PORT = 12800DATABASE_IP = '127.0.0.1'DATABASE_PORT = 27019DATABASE_NAME = 'db1'连接代码:
from pymongo import MongoClientfrom config import *client = MongoClient(DATABASE_IP, DATABASE_PORT)db_auth = client.admindb_auth.authenticate("jdh11", "123456")db = client[DATABASE_NAME]collection = db.colprint(list(collection.find({'name': 'jdh11'})))参考链接:MongoDB 教程Mongodb 3.2 开启密码认证 Python数据库-链接mongodb带用户验证Tutorial
新闻热点
疑难解答