CentOS 部署 MongoDB
512人浏览 / 0人评论
参考
https://www.jianshu.com/p/65239bf61e0a
https://www.cnblogs.com/vincent-li666/p/12763723.html
https://juejin.cn/post/6844903828811153421
创建挂载目录
cd /home/
mkdir mongo
cd mongo
mkdir data logs conf
touch logs/mongod.log
touch conf/mongod.conf
chmod 777 data logs/mongod.log
chmod 766 conf/mongod.conf
vim conf/mongod.conf
mongod.conf 内容如下:
# 数据库文件存储位置
dbpath = /data/db
# log文件存储位置
logpath = /data/log/mongod.log
# 使用追加的方式写日志
logappend = true
# 是否以守护进程方式运行
# fork = true
# 全部ip可以访问
bind_ip = 0.0.0.0
# 端口号
port = 27017
# 是否启用认证
auth = true
# 设置oplog的大小(MB)
oplogSize=2048
启动服务
Docker Hub上关于mongo镜像的详细说明:https://hub.docker.com/_/mongo/
# 拉取镜像
docker pull mongo
# 启动
docker run -d --name mongodb --restart=always --privileged -p 27017:27017 -v /home/mongo/data:/data/db -v /home/mongo/conf:/data/configdb -v /home/mongo/logs:/data/log/ mongo:latest -f /data/configdb/mongod.conf
常规配置
创建管理员账号
# 进入容器
docker exec -it mongodb /bin/bash
# 进入 mongodb
mongo
use admin
db.createUser({user:'root',pwd:'admin123',roles:['root']})
db.auth('root','admin123')
创建test库和其他账号
mongo
use admin
db.auth('root','admin123')
# 创建中间账号
db.createUser({user:'apiAdmin',pwd:'123456',roles:['root']})
db.updateUser('apiAdmin',{roles:[{'role':'dbAdmin','db':'test'},{'role':'readWrite','db':'test'}]})
# 创建测试用admin账号
use test
db.createUser({user:'admin',pwd:'123456',roles:[{role:'dbAdmin',db:'test'},'readWrite']})
# 或者
db.createUser({user:'admin',pwd:'123456',roles:[{role:'dbOwner',db:'test'},'readWrite']})
# 浏览器输入:ip:27017
# 浏览器响应文本:It looks like you are trying to access MongoDB over HTTP on tht native driver port.
远程连接
默认连接
mongo ip:27017
连接到自定义的用户
# 创建用户,设置账号,密码,权限
# admin数据库
use admin
db.createUser({user:'root', pwd:'admin123', roles:['root'] })
# 其他数据库
use test
db.createUser({user:'admin', pwd:'123456', roles:['readWrite', 'dbAdmin'] })
# 用户认证
use admin
db.auth('root', 'admin123')
use test
db.auth('admin','123456')
# 其他常用命令
db.updateUser(user, writeConcern) # 更新用户
db.dropUser('test') # 删除用户
# 远程连接
## 使用终端连接
mongo 10.128.218.14:27017/test -u admin -p 123456
# 使用mongoose方式连接
mongoose.connect('mongodb://username:password@host:port/database?options...', {useNewUrlParser: true});
常用命令
# 注意:
在 MongoDB 中,集合只有在内容插入后才会创建! 就是说,创建集合(数据表)后要再插入一个文档数据(记录),集合才会真正创建。
MongoDB 中默认的数据库为 test,如果你没有创建新的数据库,集合将存放在 test 数据库中。
# 选择存储库
use admin
# 认证
db.auth('root','admin123')
# 显示库下所有用户
# 查看存储库
use admin
db
show users
# 查看所有存储库(如果数据库里面为空将不显示)
show dbs
# 删除存储库
use admin
db.dropDatabase()
全部评论