如何在 Ubuntu 22.04 上安装和使用 MongoDB
MongoDB 是一个可扩展且灵活的开源数据库,允许您存储和检索大量数据。它专为现代应用程序而设计,以促进应用程序开发和扩展。它不是基于传统的基于表的关系数据库结构,而是使用基于文档的数据库引擎,以 JSON 而不是表格式存储数据。您可以将它与不同的编程语言集成。
这篇文章将解释如何在 Ubuntu 22.04 上安装 MongoDB 并确保其安全。
要求
- 运行 Ubuntu 22.04 的服务器。
- 服务器上设置了 root 密码。
添加 MongoDB 存储库
默认情况下,MongoDB 包不包含在标准 Ubuntu 22.04 存储库中。因此,您需要将官方MongoDB存储库添加到APT中。
首先,使用以下命令安装所有必需的依赖项:
apt-get install curl apt-transport-https software-properties-common gnupg2 -y
接下来,您还需要在服务器上安装 libssl 软件包。您可以使用以下命令下载并安装libssl包:
wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb
dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.deb
接下来,使用以下命令添加 MongoDB GPG 密钥和存储库:
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | apt-key add -
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-4.4.list
接下来,使用以下命令更新存储库缓存:
apt update
更新存储库后,使用以下命令安装 MongoDB:
apt install -y mongodb-org
安装成功后,启动MongoDB服务并使其在系统重启时启动:
systemctl start mongod
systemctl enable mongod
您还可以使用以下命令检查 MongoDB 的状态:
systemctl status mongod
您应该看到以下输出:
? mongod.service - MongoDB Database Server
Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
Active: active (running) since Sat 2022-08-06 09:48:44 UTC; 9s ago
Docs: https://docs.mongodb.org/manual
Main PID: 72432 (mongod)
Memory: 61.7M
CPU: 962ms
CGroup: /system.slice/mongod.service
??72432 /usr/bin/mongod --config /etc/mongod.conf
Aug 06 09:48:44 ubuntu2204 systemd[1]: Started MongoDB Database Server.
要检查 MongoDB 版本,请运行以下命令:
mongod --version
您应该得到以下输出:
db version v4.4.15
Build Info: {
"version": "4.4.15",
"gitVersion": "bc17cf2c788c5dda2801a090ea79da5ff7d5fac9",
"openSSLVersion": "OpenSSL 1.1.1f 31 Mar 2020",
"modules": [],
"allocator": "tcmalloc",
"environment": {
"distmod": "ubunt4",
"distarch": "x86_64",
"target_arch": "x86_64"
}
}
使用密码保护 MongoDB
默认情况下,MongoDB 中未启用身份验证。出于安全考虑,建议启用 MongoDB 身份验证。
为此,您需要为 MongoDB 创建一个管理用户。
首先,使用以下命令连接到 MongoDB shell:
mongo
连接后,使用以下命令创建名为 admin 的数据库:
> use admin
接下来,创建用户admin并输入密码:
> db.createUser(
{
user: "mongoadmin",
pwd: "mypassword",
roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
}
)
您应该看到以下输出:
Successfully added user: {
"user" : "mongoadmin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
]
}
然后按 CTRL+D 退出 MongoDB shell。接下来,您还需要在 MongoDB 配置文件中启用 MongoDB 身份验证。您可以通过编辑 MongoDB 配置文件来完成此操作:
nano /etc/mongod.conf
添加以下行以启用身份验证:
security:
authorization: enabled
保存并关闭文件,然后重新启动 MongoDB 服务以应用更改。
systemctl restart mongod
验证 MongoDB 连接
现在 MongoDB 身份验证已启用。现在运行以下命令,使用用户名和密码连接 MongoDB shell:
mongo -u mongoadmin -p
身份验证成功后,您将得到以下输出:
MongoDB shell version v4.4.9
Enter password:
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("f108c3b4-80bd-4175-80b5-747f2a35f1f8") }
MongoDB server version: 4.4.15
>
接下来,将数据库更改为 admin 并使用以下命令列出所有用户:
> use admin
> show users
您应该得到以下输出:
{
"_id" : "admin.mongoadmin",
"userId" : UUID("d98a22c2-d318-48d2-a95d-abda2685a815"),
"user" : "mongoadmin",
"db" : "admin",
"roles" : [
{
"role" : "userAdminAnyDatabase",
"db" : "admin"
}
],
"mechanisms" : [
"SCRAM-SHA-1",
"SCRAM-SHA-256"
]
}
卸载MongoDB
如果您不想在系统中安装 MongoDB,可以将其卸载。
首先,使用以下命令停止 MongoDB 服务:
systemctl stop mongod
接下来,通过运行以下命令删除 MongoDB 包:
apt-get remove mongodb-org --purge
接下来,通过运行以下命令删除 MongoDB 日志和数据目录:
rm -rf /var/lib/mongodb
结论
恭喜!您已在 Ubuntu 22.04 上成功安装并保护 MongoDB。现在您可以使用 MongoDB 来管理大量分布式数据。有关更多信息,请参阅 MongoDB 官方文档。