安装

导入包管理系统使用的公钥

wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -

在这里插入图片描述

为 MongoDB 创建一个列表文件

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list

重新加载本地包数据库

sudo apt-get update

安装 MongoDB 包

#最新版本
sudo apt-get install -y mongodb-org
#特定版本
sudo apt-get install -y mongodb-org=6.0.0 mongodb-org-database=6.0.0 mongodb-org-server=6.0.0 mongodb-mongosh=1.8.2 mongodb-org-mongos=6.0.0 mongodb-org-tools=6.0.0

如果您只安装mongodb-org=6.0.0而不包含组件包,则无论您指定什么版本,都将安装每个 MongoDB 包的最新版本

可选的。尽管您可以指定任何可用的 MongoDB 版本, apt-get但当有更新的版本可用时将升级包。为防止意外升级,您可以将软件包固定在当前安装的版本:

echo "mongodb-org hold" | sudo dpkg --set-selections
echo "mongodb-org-database hold" | sudo dpkg --set-selections
echo "mongodb-org-server hold" | sudo dpkg --set-selections
echo "mongodb-mongosh hold" | sudo dpkg --set-selections
echo "mongodb-org-mongos hold" | sudo dpkg --set-selections
echo "mongodb-org-tools hold" | sudo dpkg --set-selections

在安装过程中会创建数据目录 /var/lib/mongodb和日志目录/var/log/mongodb。

默认情况下,MongoDB 使用mongodb用户帐户运行。如果您更改运行 MongoDB 进程的用户,您还必须修改对数据和日志目录的权限,以授予该用户对这些目录的访问权限

官方 MongoDB 包包含一个配置文件( /etc/mongod.conf)。这些设置(如数据目录和日志目录规范)在启动时生效。也就是说,如果您在 MongoDB 实例运行时更改配置文件,则必须重新启动实例才能使更改生效

安装 mongo 和 mongodb

本来安装完是有mongod的 但是安装mongo mongod就不见了 所以都安装一遍

apt install mongodb-clients
apt install mongodb-server

修改配置文件开启服务远程访问

vi /etc/mongod.conf

在这里插入图片描述

指令

# 启动
systemctl start mongod
# 状态
systemctl status mongod
# 重启
systemctl restart mongod
# 停止
systemctl stop mongod
#  开机自启
systemctl enable mongod

卸载

停止 MongoDB

删除软件包

apt-get purge mongodb-org*

删除数据目录

sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongodb

认证登录

创建mongodb账户密码

# 进入mongodb
mongosh
# 进入admin数据库
use admin
# 设置admin 用户密码
# 不加 mechanisms : ["SCRAM-SHA-1"] 报错  Error: couldn't add user: Use of SCRAM-SHA-256 requires undigested 
db.createUser(
   {
      user: "root",
      pwd: "root",
      roles: [{role: "root",db: "admin"}],
      mechanisms : ["SCRAM-SHA-1"]
   }
 )
# 验证帐号是否创建成功
db.auth('root', 'root') 

在这里插入图片描述

开启认证登录

vi /etc/mongod.conf

security:
  authorization: enabled
  javascriptEnabled: false

在这里插入图片描述
重启服务

# 登录测试
mongosh --port 27017  --authenticationDatabase     "admin" -u "root" -p "root"

​角色权限:​

角色权限
数据库用户角色read、readWrite
数据库管理角色dbAdmin、dbOwner、userAdmin
集群管理角色clusterAdmin、clusterManager、clusterMonitor、hostManager
备份恢复角色backup、restore
所有数据库角色readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
超级用户角色root 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
内部角色system

​权限说明:​

权限说明
Read允许用户读取指定数据库
readWrite允许用户读写指定数据库
dbAdmin允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限
readAnyDatabase只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限
root只在admin数据库中可用(超级账号,超级权限)

问题记录

重启报错
在这里插入图片描述
解决 :
因为在准备环境的时候用的是root用户,而当时用root用户启动过一个没成功,后面修改配置文件过后用mongodb用户启动就出现了这个问题。

直接把该文件删除掉用Mongodb用户启动就行了

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐