之前开发 XMOJ 的时候用的是 MySQL,现在又想了解一下 NoSQL 的数据库,所以就选取了一个比较流行的 MongoDB 进行学习
安装并配置 MongoDB
从官网下载好mongodb-linux-x86_64-ubuntu1604-3.4.6.tgz
注意: 有时候 https 的下载速度龟速,可以尝试用 http
然后解压
1 | tar -zxvf mongodb-linux-x86_64-ubuntu1604-3.4.6.tgz |
安装完成
接下来是配置
配置文件mangodb.cnf
,放在/data/db 下
1 | dbpath=/data/db/ |
ps: rest=true 提供网页端 api,可以通过访问 http://localhost:28017/ 查看状态 //非必需
启动
1 | sudo mongod -f /data/db/mongodb.cnf |
关闭
1 | sudo mongod --shutdown |
检查端口
1 | netstat -nltp |
默认 27017 端口
运行、基本操作
1 | mongo |
创建管理员后在配置文件加上auth=true
来开启认证
登陆操作
db.auth('username','password')
$ mongo -u username -p password
用户管理说明
创建用户:
1 | use test |
更新用户:
1 | db.updateUser('zhenlys',{pwd:'zhenly',roles:[{role:'readWrite',db:'test'}]}) |
删除用户
1 | db.dropUser('zhenly') |
MongoDB 中用户的角色说明
read
数据库的只读权限
readWrite
数据库的读写权限和read的所有权限
dbAdmin
1 | clean,collMod,collStats,compact,convertToCappe create,db.createCollection(),dbStats,drop(),dropIndexes ensureIndex(),indexStats,profile,reIndex renameCollection (within a single database.),validate |
userAdmin
数据库的用户管理权限
clusterAdmin
集群管理权限(副本集、分片、主从等相关管理),包括:
1 | addShard,closeAllDatabases,connPoolStats,connPoolSync,_cpuProfilerStart_cpuProfilerStop,cursorInfo,diagLogging,dropDatabase |
readAnyDatabase
任何数据库的只读权限(和 read 相似)
readWriteAnyDatabase
任何数据库的读写权限(和 readWrite 相似)
userAdminAnyDatabase
任何数据库用户的管理权限(和 userAdmin 相似)
dbAdminAnyDatabase
任何数据库的管理权限(dbAdmin 相似)
__system
什么权限都有