mongodb 安装
Linux下安装MongoDB
MongoDB是一个C++编写的基于分布式文件存储的数据库,是一个介于关系和非关系之间的数据库,当然也属于NoSQL的行列,存储方式和Redis类似,是json格式的kav-value存储方式,只是Redis是内存存储,而MongoDB是和普通的数据库目录一样存储在硬盘上
下面就在Linux上部署单节点的MongoDB,过程如下:
首先去MongoDB官网下载软件包,首页是:https://www.mongodb.com/
1, 下载,解压到目录 /usr/local
2,创建出数据库目录,MongoDB的数据存储在data目录的db目录下,但是这个目录在安装过程不会自动创建,所以你需要手动创建data目录,并在data目录中创建db目录。
以下实例中我们将data目录创建于根目录下(/usr/local/mongodb)。
注意:/usr/local/mongodb/data/db 是 MongoDB 默认的启动的数据库路径(--dbpath)。
2, mongodb.conf 配置文件编写 /etc/mongodb
#日志文件位置
logpath=/data/db/journal/mongodb.log (这些都是可以自定义修改的)
# 以追加方式写入日志
logappend=true
# 是否以守护进程方式运行
fork = true
# 默认27017
#port = 27017
# 数据库文件位置
dbpath=/data/db
# 启用定期记录CPU利用率和 I/O 等待
#cpu = true
# 是否以安全认证方式运行,默认是不认证的非安全方式
#noauth = true
#auth = true
# 详细记录输出
#verbose = true
# Inspect all client data for validity on receipt (useful for
# developing drivers)用于开发驱动程序时验证客户端请求
#objcheck = true
# Enable db quota management
# 启用数据库配额管理
#quota = true
# 设置oplog记录等级
# Set oplogging level where n is
# 0=off (default)
# 1=W
# 2=R
# 3=both
# 7=W+some reads
#diaglog=0
# Diagnostic/debugging option 动态调试项
#nocursors = true
# Ignore query hints 忽略查询提示
#nohints = true
# 禁用http界面,默认为localhost:28017
#nohttpinterface = true
# 关闭服务器端脚本,这将极大的限制功能
# Turns off server-side scripting. This will result in greatly limited
# functionality
#noscripting = true
# 关闭扫描表,任何查询将会是扫描失败
# Turns off table scans. Any query that would do a table scan fails.
#notablescan = true
# 关闭数据文件预分配
# Disable data file preallocation.
#noprealloc = true
# 为新数据库指定.ns文件的大小,单位:MB
# Specify .ns file size for new databases.
# nssize =
# Replication Options 复制选项
# in replicated mongo databases, specify the replica set name here
#replSet=setname
# maximum size in megabytes for replication operation log
#oplogSize=1024
# path to a key file storing authentication info for connections
# between replica set members
#指定存储身份验证信息的密钥文件的路径
#keyFile=/path/to/keyfile
3,启动mongodb
/usr/local/mongodb/bin/mongod -f /etc/mongodb.conf
4,Mongodb 开启密码认证
MongoDB 如果不配置登陆的情况是等于游客也是超级管理员的,但默认不支持外链接的
show dbs
- 在mongodb新版本里并没有admin数据库,但是并不妨碍第2步操作。
- use admin 进入admin数据库
- 创建管理员账户
db.createUser({ user: "useradmin", pwd: "adminpassword", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })
mongodb中的用户是基于身份role的,该管理员账户的 role是 userAdminAnyDatabase。 ‘userAdmin’代表用户管理身份,’AnyDatabase’ 代表可以管理任何数据库。
验证第3步用户添加是否成功
- db.auth("useradmin", "adminpassword") 如果返回1,则表示成功。
exit退出系统
db.auth()方法理解为 用户的验证功能
修改配置
- sudo vi /etc/mongod.conf
重启mongodb 验证用户密码
创建管理员
db.createUser({user:"root",pwd:"robot1qaz",roles:["userAdminAnyDatabase"]})
创建用户,及数据库
db.createUser({user: "deploy",pwd: "deploy1qaz",roles: [{ role: "readWrite", db: "chatbots" }]})
删除用户
db.system.users.remove({user:"deploy"})
显示用户
db.system.users.find()