/etc/xxx.conf
编辑 mongodb 配置文件启用用户验证
vim /etc/mongodb.conf
# IP
bind_ip = 0.0.0.0
# 端口
port = 27017
修改以下安全配置
# Turn on/off security. Off is currently the default
#noauth = true
#auth = true
去掉 #auth=true
前的注释 #
auth = true
重启 mongodb
服务
service mongodb restart
使用 mongo
shell 连接服务器
# 连接服务器
mongo
# 连接到 admin 数据库
use admin
# 创建管理员账号,用户名和密码可以任意,角色为 `root`
db.createUser({user:'root',pwd:'123456',roles:['root']})
# 登录
db.auth('root','123456')
登录后在 admin 数据库
user admin
db.auth('root','hello')
show collections
> system.users
> system.version
# 显示用户信息
db.system.users.find().pretty()
为特定的某个数据库设计用户名和密码
# 创建数据库
use hr
# 创建用户
db.createUser({
user:'hr_user',
pwd:'123',
roles:[{db:'hr',role:'dbOwner'}]
})
# 显示用户
show users
连接数据库
mongo 127.0.0.1:27017/demo -u demo -p
# 获得 mongo shell 更多信息
mongo --help
数据建模
文档
中嵌入子文档
文档之间 引用
($lookup
类似关系数据库中的表连接)
MongoDB 一个文档不能超过 16M(一个文档不要嵌套过大)
MongoDB GridFS(网格文件系统)
用于存储大文件(超过 16M),文件(默认)会被切成 255k 的块存储,存储在两个集合中,一个存储文件的元信息,另一个存储文件的数据
# 往数据库 myfile 中上传(put)文件
mongofiles -d myfile put 文件路径
# 显示数据库 myfile 中的文件
mongofiles -d myfile list
文件存储在两个集合中
fs.files 文件的元数据信息(文件名、大小、块大小、日期、_id) fs.chunks 文件的内容(files_id, 内容,格式)mongofiles
上传到远程数据库
mongofiles -h ip -d db_name -u user -p password put file_path
mongofiles -h ip -d db_name -u user -p password list
mongofiles
工具是命令行的开发工具