官网文档安装教程:docs.mongodb.com/manual/tuto…
配置YUM源
vim /etc/yum.repos.d/mongodb-org-5.0.repo # 新增文件
在文件中粘贴下方内容,并保存
[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc
安装MongoDB
sudo yum install -y mongodb-org
启动
sudo systemctl start mongod # 启动服务
sudo systemctl enable mongod # 若配置文件设置了开机启动,则此命令相当于激活开机启动
sudo systemctl restart mongod # 重启服务
查看端口状态
netstat -nptl | grep '27017'
创建用户相关
背景:此时我在远程服务器上安装mongodb,我不想让所有人都能够操作我的数据库,并希望能够通过MongoDB Compass连接我的远程数据库。
修改配置文件:
vim /etc/mongod.conf
在文件中加上:
security:
authorization: enabled
重启服务
sudo systemctl restart mongod
创建用户
# 访问mongoDB
mongo
# 使用admin数据库
use admin
# 创建root权限的用户
db.createUser({ user: "root", pwd: "123123", roles: [{ role: "root", db: "admin" }] })
# 退出
quit()
# 使用用户密码登录
mongo -u root -p --authenticationDatabase admin
# 追加用户权限(给root用户追加test数据库的读写权限,ps: 如果已经是root权限,不加下面的权限也可以读写,此处仅作例子参考)
db.grantRolesToUser("root", [{role:"readWrite",db:"test"}])
添加了用户之后,nodejs中mongoose连接数据库的写法需要写成下面的样子:
/*
用户名:root
密码:123123
数据库名:test
注意:?authSource=admin 是需要加的
*/
mongoose.connect('mongodb://root:123123@localhost:27017/test?authSource=admin');
此时我还想用自己电脑上的Mongodb compass连接这个远程的数据库:
修改配置文件,使得所有IP都能连接
vim /etc/mongod.conf
文件中修改bindIp替换成0.0.0.0
net:
port: 27017
bindIp: 0.0.0.0
打开云服务器防火墙的27017端口:
使用mongodb compass连接