wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
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
#最新版本
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 实例运行时更改配置文件,则必须重新启动实例才能使更改生效
本来安装完是有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
apt-get purge mongodb-org*
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/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用户启动就行了