简介

项目打算集成mongodb,把一些不定结构的数据存储到mongodb中。

本文记录在centos上安装mongodb上,并且使用robo-3T连接mongodb遇到的问题。

安装mongodb

选择版本,目前最新版本都已经到6.0,当然我连接mongodb的客户端为robo-3T,高级版本不支持。最新版本的robo-3T为1.4版,后续就转为Studio 3T了。robo-3T支持的最高的mongodb版本为4.2,所以我们就选择mongodb 4.2版本即可。

官方教程上直接可以看到安装流程,创建/etc/yum.repos.d/mongodb-org-4.2.repo文件,写入内容

1
2
3
4
5
6
[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc

如果你用的是amazon aws上的主机,则改为

1
2
3
4
5
6
[mongodb-org-4.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/amazon/2/mongodb-org/4.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc

然后执行命令即可安装

1
sudo yum install -y mongodb-org

结束后,配置文件在/etc/mongod.conf,可以按需修改配置。如下命令操作mongodb服务

1
2
3
4
5
6
sudo systemctl start mongod   # 启动

sudo systemctl stop mongod # 停止

sudo systemctl restart mongod # 重启

创建登陆用户

这时使用robo-3T直接连接mongodb是连接不通的,需要通过认证

分别执行命令

1
2
3
4
5
6
7
8
9
10
./mongo  # 进入mongodb shell

use admin;

db.createUser({user:"admin",pwd:"admin",roles:[{role:"root",db:"admin"}]}); # 新建用户admin/admin, 权限为root

db.auth("admin", "admin"); # 验证是否创建成功,返回1则表示成功

# db.updateUser("admin",{pwd:"admin"}); # 更改密码指令

配置robo-3T连接mongodb

在编辑robo-3T配置的时候,除了连接地址配置外,还需要配置Authentication选项卡,勾选中Perform authentication,设置认证表以及认证用户即可。如图

robo-3T 认证