最近要部署公司的老项目,要在新系统中部署服务器环境,遇到了一些问题,特此记录。刚开始发现 ubuntu22.04 的存储库已经找不到 mongodb了,没有办法只能硬着头皮搜集资料看有没有解决方案,现把我的安装细节总结如下:
安装libssl1.1
由于最新的Ubuntu使用的是openssl 3.0,而mongodb需要1.1版本的,所以只能强行安装
# 注意:18.04.21版本可能不存在了,请查看版本后再操作
curl -LO http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1-1ubuntu2.1~18.04.21_amd64.deb
sudo dpkg -i ./libssl1.1_1.1.1-1ubuntu2.1~18.04.21_amd64.deb
使用国内源安装
首先信任 MongoDB 的 GPG 公钥:
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
或者直接导入GPG公钥:
curl -fsSL https://www.mongodb.org/static/pgp/server-6.0.asc|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/mongodb.gpg
添加apt源(使用清华大学镜像)
# 5.0版本请把jammy替换成focal
echo "deb [ arch=amd64,arm64 ] https://mirrors.tuna.tsinghua.edu.cn/mongodb/apt/ubuntu jammy/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
更新apt源时可能有这样的提示:
https://repo.mongodb.org/apt/ubuntu/dists/jammy/mongodb-org/5.0/Release.gpg: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details
apt-key list 打印gpg key
pub rsa4096 2021-02-16 [SC] [expires: 2026-02-15]
F567 9A22 2C64 7C87 527C 2F8C B00A 0BD1 E2C6 3C11
uid [ unknown] MongoDB 5.0 Release Signing Key <packaging@mongodb.com>
/etc/apt/trusted.gpg.d/trusted.gpg
执行如下命令:
# E2C63C11 取自于gpg key 的后8位,去掉空格
apt-key export E2C63C11 | sudo gpg --dearmour -o /etc/apt/trusted.gpg.d/mongodb.gpg
再次 apt-get update 就没提示了
# 查看运行状态
systemctl status mongod.service
# 开机自启
systemctl enable mongod.service
添加用户和角色
添加管理员用户:
# 必须切换数据库
use admin
# 给管理员加root角色,拥有超级权限
db.createUser({user:"admin",pwd:"password",roles:[{role:"userAdminAnyDatabase",db:"admin"},{role:"root",db:"admin"}]})
添加普通用户:
use dbname
db.createUser({user:"username",pwd:"password",roles:[{role:"dbOwner",db:"dbname"}]})
修改用户角色
db.updateUser("admin",{roles:[{role:"userAdminAnyDatabase",db:"admin"},{role:"root",db:"admin"}]})
启用安全校验
编辑配置文件/etc/mongod.conf
在合适的位置加上
# 注意缩进
security:
authorization: enabled
重启后即可生效
sudo systemctl restart mongod.service
参考资料:
Key is stored in legacy trusted.gpg keyring
Fixing "Key is stored in legacy trusted.gpg keyring" Issue in Ubuntu
How To Install MongoDB 5 on Ubuntu 22.04|20.04|18.04