一、什么是mongdb
是一个基于分布式文件存储数据库,C++编写,内存数据库。是非关系数据库中功能最丰富的,最像关系数据库的。数据结构是类似json的bson格式。
- 键值数据库(key-value):Redis
- 列存储数据库:HBase
- 文档型数据库:MongoDB、CouchDB、SequoiaDB。
- 图形数据库:Neo4J、InfoGrid
二、与关系型数据库对比
三、数据类型
四、启动
1、下载mongodb-linux-x86_64-rhel70-4.4.0.tgz解压缩到自定义目录
2、创建/data/db目录和/logs目录
3、配置mongodb.conf文件
#端口号
port=27017
#db目录
dbpath=/usr/local/mongodb/data/db
#日志目录
logpath=//usr/local/mongodb/logs/mongodb.log
#后台
fork=true
#日志输出
logappend=true
#允许远程IP连接
bind_ip=0.0.0.0
4、到MongoDB目录下启动./bin/mongod -f mongodb.conf
./bin/mongod --config mongodb.conf
5、常见启动参数
6、停止
./bin/mongod -shutdown --config mongodb.conf
7、配置环境变量
8、
mongod --config /usr/local/mongodb/mongodb.conf
mongod --shutdown --config /usr/local/mongodb/mongodb.conf
9、关闭mongodb
- Ctrl+c,关闭前置启动方式,会等待当前操作完成后关闭,是安全关闭方式。
- 使用Linux的kill命令,结束进程,然后删除data/db目录中的mongod.lock文件,否则下次无法启动,此种方式不建议使用,因为会造成数据丢失现象。
- Mongo中提供了两种关闭函数,
db.shutdownServer()
和db.runCommand("shutdown")
,如上两种方式都需要在admin库中执行,都是安全的管理方式。
-或使用mongdb的命令mongod --shutdown --config /usr/local/mongodb/mongodb.conf
10、查看mongodb是否启动ps aux|grep mongodb
11、启动mongo客户端,mongo
,如果已经配置环境变量则直接在任何目录执行都可,如果未配置则在mongo的bin目录下执行。
五、权限介绍
1、创建用户需要在admin库中执行,
db.system.users.find()
查看当前所有用户,db.createUser({user:"whx",pwd:"1016",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
2、开启权限,mongodb.conf配置文件中添加auth=true
,重启mongodb。
3、客户端再次登录需要db.auth("whx","1016")
4、创建某数据库的普通用户,db.createUser({user:“springCloud”,pwd:“111111”,roles:[{role:“readWrite”,db:“testDb”}]}),再次登录用户,然后切换数据库。
5、更新用户角色6、更新用户密码,需要使用管理员用户
7、删除用户