如何设置密码
- 在服务启动状态下,在命令行中输入
mongo
; - 首先设置admin表的用户(必须,否则单独设置表用户无用),先执行
use admin
,再执行db.createUser({user: 'root', pwd: '123456', roles: ['root']})
,此时会创建一个名为root,密码为123456,角色为root的用户,前两者可以自定义设置; - 测试是否创建成功
db.auth('root', '123456')
,返回1表示成功; - 接下来为自己的数据库设置用户,假设我们的数据库名叫mydb先执行
use mydb
,再执行db.createUser({user:'myuser',pwd:'123456',roles: [{role:'readWrite',db:'mydb'}]})
,此时会创建一个名为myuser,密码为123456,角色为只能读写的用户。 - 成功后执行
exit
退出; - 开启验证登录功能:
- 如果服务是配置好的,开机能自动启动mongod服务,前往安装目录,找到
mongod.conf
打开,把security:
前的井号去掉,并另起一行,加两个空格(不是tab),粘贴上authorization: enabled
,保存后去服务重启服务即可。- 如果需要命令行启动服务,在启动命令的后面加上
--auth
即可(空格也需要),即windows的:mongod --dbpath D:\mongdb\Server\5.0\data --auth
或linux的sudo mongod --dbpath /usr/local/MongoDB/data/db --auth
使用3T或者compas连接
- Authentication选择
Username / Password
; - 填入自己数据库的用户名密码;
- Authentication Database填入自己的数据库名称;
- 其它跟之前一样即可,点击连接。
如何在代码中连接
以python为例:
client = pymongo.MongoClient("mongodb://myuser:123456@localhost:27017/mydb")
db = self.client['mydb']
其它就和原来不用密码时一样的用法了,需要注意如果密码中有@
符号,此种连接方法就不能用了。
如何修改密码
- 同样先在命令行执行
mongo
; - 如果需要改自己数据库对应的密码,比如mydb的,就执行
use mydb
,再执行db.changeUserPassword('myuser','654321')
即可。