一、介绍
MongoDB是一个面向文档的NoSQL数据库,用于管理,存储和检索以类似JSON格式的键值对格式构建的面向文档的信息。MongoDB主要用于大数据应用程序,并处理不断增长的数据集,这些数据集不适合关系数据模型。
MongoDB在云中部署时表现良好。它提供了出色的操作灵活性、成本效益、高冗余和卓越的数据安全性。在本指南中, 您将在 FreeBSD 13.0 服务器上安装 MongoDB。
二、准备工作
要有效地遵循本指南,请确保满足以下要求:
- FreeBSD 13.0 服务器。
- 具有 Sudo 权限的非 root 用户。
三、更新 FreeBSD 13 基本系统
最新的 FreeBSD 系统和软件包仓库对于清除系统中的关键和非关键错误、改进功能以及防止安全漏洞至关重要。
通过 SSH 连接到您的服务器并执行以下步骤。
- 要用新的和可用的安全补丁、版本升级以及其他系统文件和依赖关系更新您的 FreeBSD 系统, 请执行以下命令:
$ sudo freebsd-update fetch install
- FreeBSD 使用一种叫做 安装、升级和管理二进制包的工具。用最新的数据库包信息更新 FreeBSD 仓库。
pkg
$ sudo pkg update -f
如果默认命令无法提取最新更新,则上述命令中的标志会强制更新。-f
pkg update
四、安装 MongoDB
现在,随着您的服务器处于最新状态并准备就绪并正在运行,请安装 MongoDB 及其依赖项。pkg
要从 FreeBSD 仓库安装最新版本的 MongoDB, 你必须首先在仓库中查找 MongoDB 二进制文件。不幸的是,由于MongoDB端口已过期和弃用,因此无法使用命令直接安装MongoDB。pkg install mongodb
- 使用以下命令搜索 MongoDB 包:
$ sudo pkg search mongodb
如下所示,您应该会看到可用的MongoDB包列表,范围从旧版本到最新版本以及其他相关资源。
mongodb-tools-100.5.1 Tools for MongoDB 4.4.x and up mongodb36-3.6.23 Distributed document-oriented "NoSQL" database mongodb40-4.0.27 Distributed document-oriented "NoSQL" database (4.0.x Branch) mongodb40-tools-4.0.27 Tools for MongoDB mongodb42-4.2.17 Distributed document-oriented "NoSQL" database (4.2.x Branch) mongodb42-tools-4.2.17 Tools for MongoDB 4.2.x mongodb44-4.4.11 Distributed document-oriented "NoSQL" database (4.4.x Branch) mongodb50-5.0.5 Distributed document-oriented "NoSQL" database (5.0.x Branch) p5-Mojolicious-Plugin-Mongodb-1.16_1 Use MongoDB in Mojolicious p5-MongoDB-2.2.2 Mongo Driver for Perl php73-pecl-mongodb-1.9.1 PECL classes for MongoDB php74-pecl-mongodb-1.9.1 PECL classes for MongoDB php80-pecl-mongodb-1.9.1 PECL classes for MongoDB py38-nagios-check_mongodb-0.1 Nagios plugin to check mongodb server
自撰写本指南时起,您将安装最新版本的MongoDB,版本5.0.5。
- 要安装 MongoDB 版本 5.0.5,请运行以下命令:
$ sudo pkg install mongodb50-5.0.5
系统将提示您继续安装。按下并点击开始。YENTER
- 使用以下命令确认 MongoDB 已成功安装:
$ sudo pkg info mongodb50-5.0.5
上述命令的输出如下所示:
mongodb50-5.0.5 Name : mongodb50 Version : 5.0.5 Installed on : Mon Feb 21 07:48:46 2022 UTC Origin : databases/mongodb50 Architecture : FreeBSD:13:amd64 Prefix : /usr/local Categories : databases net Licenses : APACHE20, SSPLv1 Maintainer : ronald-lists@klop.ws WWW : https://docs.mongodb.com/v5.0/ Comment : Distributed document-oriented "NoSQL" database (5.0.x Branch) Options : LTO : on SASL : on SSL : on Shared Libs required: libsasl2.so.3 libpcre.so.1 libpcrecpp.so.0 libsnappy.so.1 libcurl.so.4 Annotations : FreeBSD_version: 1300139 cpe : cpe:2.3:a:mongodb:mongodb:5.0.5:::::freebsd13:x64 repo_type : binary repository : FreeBSD Flat size : 165MiB Description : Mongo (from "humongous") is a high-performance, open source, schema-free, document-oriented database. A common name in the "NOSQL" community. WWW: https://docs.mongodb.com/v5.0/
五、在系统启动期间启动 MongoDB
为了避免在系统启动后手动启动MongoDB,您可以将MongoDB设置为在系统启动时自动启动。为此,您需要编辑 /etc 目录中的文件。rc.conf
在编辑文件之前,您需要一个命令行文本编辑器。在本指南中,您将使用 GNU nano。rc.conf
- 要安装 nano,请执行以下步骤:
$ sudo pkg install nano
- 编辑 /etc 目录中的文件:
rc.conf
$ sudo nano /etc/rc.conf
- 在文件中添加以下行,以将 MongoDB 守护程序配置为在系统启动时自动启动:
rc.conf
mongod_enable="YES"
按 + 保存,按 + 退出 nano。CTRLSCTRLX
六、启动 MongoDB 服务和测试数据库
MongoDB已成功安装,并设置为在系统启动时自动启动。但是,您创建的配置尚未应用。
- 要使配置生效,请手动启动MongoDB:
$ sudo service mongod start
- 确认 MongoDB 已成功启动:
$ sudo service mongod status
应得到以下输出:
mongod is running as pid 16173
- 要测试数据库并进一步确认MongoDB已正确启动并完全正常运行,请运行以下命令以检查MongoDB的连接状态:
$ mongo --eval 'db.runCommand({ connectionStatus: 1 })'
从下面显示的输出来看,MongoDB通过MongoDB默认端口27017在本地主机(127.0.0.1)上启动并运行。类似 JSON 的响应中显示的键的值为 ,指示服务器按预期运行。
ok
1
MongoDB shell version v5.0.5 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Implicit session: session { "id" : UUID("0dc008c4-dab1-4d0f-9745-04d29aade856") } MongoDB server version: 5.0.5 { "authInfo" : { "authenticatedUsers" : [ ], "authenticatedUserRoles" : [ ] }, "ok" : 1 }
- 要停止 MongoDB 服务(可选),请运行以下命令:
$ sudo service mongodb stop
七、安全蒙戈数据库
默认情况下,MongoDB在安装后不安全。因此,用户可以读取、写入、删除和修改数据,而无需服务器进行身份验证。有关如何保护 MongoDB 的更多信息,请参阅此处的 Secure MongoDB 文章。
一旦你能够保护MongoDB,使用以下命令重新启动MongoDB:
$ sudo service mongod restart