- 不开启权限的时候启动mongoDB:
windows必须在存放MongoDB文件中的bin下运行
# 开启服务器:
windows:mongod --dbpath E:\MongoDB\data\db(dbpath存储路径)
ubuntu:mongod --bind_ip 192.168.1.118 --port 27018 --dbpath ~/桌面/test1 --replSet rs0
# 开启客户端
windows:mongo
- 创建超级管理用户
use admin
db.createUser(
{
user:'admin',
pwd:'123',
roles:[{role:'root',db:'admin'}]
}
)
创建成功后退出mongodb客户端, 然后service mongodb stop, 再开启安全认证,
- 启用安全认证
进入配置文件并修改sudo vi /etc/mongod.conf
启用身份验证
新版本 keys and values之间要加空格, 否则解析会报错
security:
authorization: enabled
- 重启启动mongo服务:
linux:sudo service mongodb restart
windows:mongod --dbpath E:\MongoDB\data\db --port 27017 --auth
- 开启权限后登陆
- mongo -u username -p password --authenticationDatabase 'admin'
修改普通用户权限或密码
修改用户:可以修改pwd、roles属性
注意这里只有超级管理员才有权限修改普通用户的密码和管理权限
修改用户密码(切换到有权限操作的数据库下)
db.updateUser(‘ljh',{pwd:'456'})
添加用户权限(切换到有权限操作的数据库下)
db.grantRolesToUser('username',[{role:'',db:''}])
移除用户权限(切换到有权限操作的数据库下)
db.revokeRolesFromUser('username',[{role:'',db:''}])
删除用户(方式一)(切换到有权限操作的数据库下)
db.dropUser('username')
删除用户 (方式二)
use admin db.system.users.remove({user:'username'})
备份与恢复
- 如果没有开启权限
备份
mongodump -h 127.0.0.1:27017 -d 数据库名称 -o 数据库备份的路径
mongodump -h 127.0.0.1:27017 -o 数据库备份的路径
恢复
mongorestore -h 127.0.0.1:27017 -d 数据库名称 -c集合名称 --dir 数据库备份文件路径
mongorestore -h 127.0.0.1 -dir 数据库备份文件路径
- 开启权限
备份
mongodump -u username -p password --authenticationDatabase 'admin' -d dbname -o dbpath
恢复
mongorestore -u username -p password --authenticationDatabase 'admin' -d 数据库名称 --dir 数据库备份文件路径
- 导出、导入工具:mongoexport、导出工具:mongoimport
导出参数
d :数据库名
c :collection名
o :输出的文件名
-type : 输出的格式,默认为json
f :输出的字段,如果-type为csv,则需要加上-f "字段名",
注:windows设置字段不加引号
导出json
mongoexport -d class1804 -c books -o 备份数据库的路径/book.json --type json
导出csv
mongoexport -d class1804 -c books -o 备份数据库的路径/books.csv --type csv -f 'by_user,likes'
- 导入参数说明:
d:数据库名
c:collection名
-type:导入的格式默认json
f:导入的字段名
-headerline:如果导入的格式是csv,则可以使用第一行的标题作为导入的字段
-file:要导入的文件
导入json
mongoimport -d class1712B -c books --file ~/桌面/dump/books --type json
导入csv
mongoimport -d class1712B -c info --file ~/桌面/dump/books --headerline --type c