【MongoDB系列】基础配置与常用命令
【MongoDB系列】基础配置与常用命令
设置 admin
use admin
db.createUser({
user: 'admin', // 用户名
pwd: '123456', // 密码
roles:[{
role: 'root', // 角色
db: 'admin' // 数据库
}]
})
设置完成,可以输入 show users
查看是否设置成功。
开启验证
找到 MongoDB 安装目录,打开 mongod.cfg
文件,找到以下这句:
#security:
修改为:
security:
authorization: enabled
登录数据库
// 方式一
mongo
use admin
db.auth('admin', '123456')
// 方式二
mongo admin -u admin -p 123456
这时候我们就可以正常访问和操作数据了。
远程连接
mongodb://用户名:密码@ip或域名:27017/?authSource=数据库名&readPreference=primary&directConnection=true&ssl=false
添加数据库用户
我们除了可以设置数据库的超级管理员以外,还可以给每个数据库设置单独的管理员。其只有操作单独数据的一定权限。
use test // 跳转到需要添加用户的数据库
db.createUser({
user: 'fooadmin', // 用户名
pwd: '123456', // 密码
roles:[{
role: 'readWrite', // 角色
db: 'test' // 数据库名,该用户只能操作该数据库
}]
})
常用命令
-
查看当前库下的用户:
show users
-
删除用户:
db.dropUser('testadmin')
-
修改用户密码:
db.updateUser('admin', {pwd: '654321'})
或db.changeUserPassword('username', 'pwa')
-
密码认证:
db.auth('admin', '654321')
-
查看所有数据库:
show dbs
-
查看当前数据库下的集合:
show collections
-
查看所有数据库的用户:
db.system.users.find()
-
查看当前数据库的所有用户:
show users
-
删除单个用户:
db.system.users.remove({user:"XXXXXX"})
-
删除所有用户:
db.system.users.remove({})
-
删除用户:
db.dropUser('admin')
忘记密码
-
修改mongodb配置,将authorization 改为disable,重启MongoDB;
vim /etc/mongodb.conf
; -
切换到忘记密码的数据库,执行修改密码命令;
-
修改密码
db.changeUserPassword('username', 'pwa')
; -
修改成功后再将authorization设置成enabled。如果改成enable后无法连接mongodb,则可尝试注释掉authorization;
导入数据(json)
mongoimport --db 数据库名称 --collection 集合名称 --file json文件具体路径
- 注意:
在导入数据时 --collection 对应的集合名称必须与 --file路径下的集合名称相一致,否则会出现如下错误,这是个容易被忽略的坑:error validating settings: incompatible options: --file and positional argument(s)
- 实际示例 :
mongoimport --db xxx_name --collection mycolle --file d:/Database/temp/mycolle.json
导出数据
-
导出的文件有两种格式:json/csv;
-
此处导出的是json文件;
-
对于导出CSV文件是需要额外指定一个变量 -field '对于的字段名称'
-
导出json文件命令组成:
mongoexport -h 数据库所在主机地址(若是本地则为127.0.0.1,若是远程则写为远程地址IP) -d 要导出的数据库名称 -c 集合名称 -o 输出多的json文件路径
- 导出csv文件命令组成 :
mongoexport -h 主机地址 -d 数据库名称 -c 集合名称 --csv --field 字段列表 -o 输出地址
实际示例:
mongoexport -h 127.0.0.1 -d test_new -c mycolle -o D:\Database\temp\mycolle.json
MongoDB 数据库默认角色
- 数据库用户角色:
read
、readWrite
- 数据库管理角色:
dbAdmin
、dbOwner
、userAdmin
- 集群管理角色:
clusterAdmin
、clusterManager
、clusterMonitor
、hostManager
- 备份恢复角色:
backup
、restore
- 所有数据库角色:
readAnyDatabase
、readWriteAnyDatabase
、userAdminAnyDatabase
、dbAdminAnyDatabase
- 超级用户角色:
*root