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()

用户权限角色说明

全部评论