在WSL2中安装和使用mongodb
# 前言
根据 lightnode 上的安装方式进行安装。在安装 mongodb 的步骤时可能会报错:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 axro@LAPTOP-7O53L0P8:~$ sudo apt install -y mongodb-org Reading package lists... Done Building dependency tree... Done Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: mongodb-org-mongos : Depends: libssl1.1 (>= 1.1.1) but it is not installable mongodb-org-server : Depends: libssl1.1 (>= 1.1.1) but it is not installable mongodb-org-shell : Depends: libssl1.1 (>= 1.1.1) but it is not installable E: Unable to correct problems, you have held broken packages.
本篇文章会解决这个问题并正常使用 mongodb。
# 安装
首先对你的系统进行更新,我想这应该很简单大家应该都会:
现在您的系统已经更新,我们可以继续安装 MongoDB。我们将逐步完成这个过程,包括添加 MongoDB 存储库、导入公钥和安装 MongoDB 软件包。
# 添加存储库
首先,让我们将 MongoDB 存储库添加到我们的源列表中。使用以下命令为 MongoDB 创建一个列表文件:
1 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
# 导入公钥
为确保我们即将安装的软件包的真实性,我们需要导入 MongoDB 公共 GPG 密钥:
1 wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
如果命令成功,您将看到输出 "OK"。
# 手动安装 libssl1.1
下载 libssl1.1 的 .deb 文件:
1 wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb
安装下载的 .deb 文件:
1 sudo dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.deb
# 安装 mongodb
现在,安装 MongoDB:
1 sudo apt install -y mongodb-org
此命令将安装以下软件包:
mongodb-org
(一个元软件包,自动安装下面列出的四个组件软件包)
mongodb-org-server
(mongod 守护进程及相关配置和初始化脚本)
mongodb-org-mongos
(mongos 守护进程)
mongodb-org-shell
(mongo shell)
mongodb-org-tools
(包含几个 MongoDB 工具,用于导入和导出数据、统计和其他实用程序)
# 验证安装
安装完成后,您可以通过运行以下命令验证 MongoDB 版本:
如果正常的话:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 axro@LAPTOP-7O53L0P8:~$ mongod --version db version v5.0.30 Build Info: { "version" : "5.0.30" , "gitVersion" : "966efda23d779a86c76c34e1b13e561d68f2bb37" , "openSSLVersion" : "OpenSSL 1.1.1f 31 Mar 2020" , "modules" : [], "allocator" : "tcmalloc" , "environment" : { "distmod" : "ubuntu2004" , "distarch" : "x86_64" , "target_arch" : "x86_64" } }
这应该显示您刚刚安装的 MongoDB 版本。
MongoDB 应该在安装后自动启动。您可以使用以下命令验证其状态:
1 sudo systemctl status mongod
如果 MongoDB 正在运行,您应该看到指示服务处于活动 (运行) 状态的输出。
如果 MongoDB 没有运行,您可以使用以下命令启动它:
1 sudo systemctl start mongod
要确保 MongoDB 在系统重启时自动启动,运行:
1 sudo systemctl enable mongod
# 配置 MongoDB
成功安装 MongoDB 后,下一步是根据您的需求进行配置。在本节中,我们将介绍理解配置文件、基本配置设置以及如何通过启用身份验证来保护 MongoDB。
# 理解配置文件
MongoDB 的主要配置文件是 mongod.conf。在 Ubuntu 上,这个文件通常位于 /etc/mongod.conf。这个文件使用 YAML 格式进行配置设置。
编辑配置文件:
1 sudo nvim /etc/mongod.conf
# 基本配置设置
让我们来看一些关键的配置设置:
bindIp
: 默认设置为 127.0.0.1, 这意味着 MongoDB 只会接受来自本地主机的连接。如果您需要接受来自远程主机的连接,您需要更改此设置为 0.0.0.0
。
port
: 默认端口是 27017。如果需要,您可以更改此设置,但记得相应地更新防火墙规则。
dbPath
: 这指定了 MongoDB 存储其数据文件的位置。默认是 /var/lib/mongodb
。
logPath
: 这指定了 MongoDB 写入其日志的位置。默认是 /var/log/mongodb/mongod.log
。
以下是这些设置在配置文件中的示例:
/etc/mongod.conf 1 2 3 4 5 6 7 8 9 10 11 12 13 14 net: port: 27017 bindIp: 127.0.0.1 systemLog: destination: file logAppend: true path: /var/log/mongodb/mongod.log storage: dbPath: /var/lib/mongodb
更改完配置文件后别忘了重启 mongodb 服务器:
1 sudo systemctl restart mongod
# 保护 MongoDB (启用身份验证)
默认情况下,MongoDB 不需要身份验证。对于生产环境来说,启用这个功能至关重要。
首先,启动 MongoDB shell 并切换到 admin 库:
创建一个管理员用户:
1 2 3 4 5 6 7 db.createUser( { user: "adminUser", pwd: "securePassword", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
将 "adminUser" 和 "securePassword" 替换为您选择的用户名和密码。
现在,编辑 MongoDB 配置文件:
1 sudo nvim /etc/mongod.conf
添加或修改安全部分以启用身份验证:
1 2 security: authorization: enabled
保存文件并退出编辑器。
重启 MongoDB 以使更改生效:
1 sudo systemctl restart mongod