Apache CouchDB 是一款开源的 NoSQL 文档型数据库,支持多种数据存储格式和协议。它采用 Erlang 语言编写,可作为高性能单节点数据库运行。

Apache CouchDB 支持使用 JSON 存储数据,并提供用于管理系统的 Web 界面及便于数据查询的 HTTP API。

本指南将引导您在 AlmaLinux 9 服务器上安装 Apache CouchDB。您将安装单节点集群模式的Apache CouchDB,并为其配置管理员用户及firewalld防火墙。此外,您还将学习如何通过Web界面和Curl工具的HTTP API在Apache CouchDB中创建数据库与文档。


先决条件


完成本指南需满足以下条件:

  • 一台AlmaLinux 9服务器。
  • 具备管理员权限的非root用户。
  • SELinux处于许可模式。


配置Apache CouchDB软件源


Apache CouchDB是一款多平台NoSQL数据库,支持在Linux、Windows、macOS、FreeBSD及Docker/Kubernetes等容器技术环境中部署。对于基于RHEL的发行版,需通过DNF从官方软件源安装CouchDB。


首先在 AlmaLinux 服务器上执行以下命令安装 dnf-plugins-core:

sudo dnf install dnf-plugins-core -y

image


使用以下命令将 Apache CouchDB 仓库添加至系统:

sudo dnf config-manager --add-repo https://couchdb.apache.org/repo/couchdb.repo

现在执行以下 dnf 命令检查系统可用仓库,确保 Apache CouchDB 仓库已添加:

sudo dnf repolist

image


添加仓库后,使用以下 dnf 命令安装 Apache CouchDB 软件包:

sudo dnf install couchdb

输入 y 并按回车继续。


image


当系统询问是否添加 Apache CouchDB GPG 密钥时,请输入 y 添加密钥。

image


安装完成后继续操作。


通过仓库安装 Apache CouchDB


通过 DNF 安装 CouchDB 后,需修改默认配置:设置单节点集群、配置管理员用户及密码,并使用本地服务器 IP 地址配置 HTTP 地址。


使用 nano 编辑器命令打开默认配置文件 /opt/couchdb/etc/local.ini:

sudo nano /opt/couchdb/etc/local.ini

在 ‘[couchdb]’ 部分添加以下行以配置 Apache CouchDB 单节点模式:

[couchdb]
single_node=true

完成后保存并关闭文件。


接下来,使用以下 nano 编辑器命令创建新配置文件 /opt/couchdb/etc/local.d/10-admins.ini:

sudo nano /opt/couchdb/etc/local.d/10-admins.ini

在文件中添加以下配置,并确保将管理员用户名和密码替换为您的实际信息。该明文密码在运行 Apache CouchDB 时将自动加密。

[admins]
admin = password

完成后保存并关闭文件。


现在使用以下 nano 命令打开默认配置文件 /opt/couchdb/etc/default.ini:

sudo nano /opt/couchdb/etc/default.ini

在 ‘[chttpd]’ 部分将默认的 ‘bind_address’ 修改为您的本地 IP 地址,以便从本地计算机访问。

[chttpd]
bind_address = 192.168.5.50

完成后保存并关闭文件。


随后执行以下 systemctl 命令启动并启用 couchdb 服务:

sudo systemctl start couchdb
sudo systemctl enable couchdb

image


最后通过以下命令验证服务状态:

sudo systemctl status couchdb

若服务正常运行,应显示类似 ‘active (running)’ 的输出结果。


image


配置 Firewalld


现在 CouchDB 已运行,您需要设置 firewalld 以打开 5984/tcp 和 4369/tcp 端口,允许访问您的 Apache CouchDB 安装。


执行以下命令为 Apache CouchDB 开放 5984/tcp 和 4369/tcp 端口:

sudo firewall-cmd --permanent --add-port={5984/tcp,4369/tcp}

重新加载 firewalld 以应用更改:

sudo firewall-cmd --reload

随后使用以下命令验证 firewalld 开放端口列表,确保 5984/tcp 和 4369/tcp 可用:

sudo firewall-cmd --list-all

image


最后运行 curl 命令检查 Apache CouchDB 状态:

curl http://192.168.5.50:5984/

或通过 DNF 安装 ‘jq’ 工具解析 JSON 输出以提升可读性。

sudo dnf install -y

使用如下命令解析 JSON 输出:

curl http://192.168.5.50:5984/ | jq .

若安装成功,应显示以下内容:


image


访问 Apache CouchDB Web 管理界面


至此您已完成 Apache CouchDB 与 firewalld 的配置,可访问 CouchDB 安装环境。


访问 Apache CouchDB 时,请在浏览器中输入服务器 IP 地址后接端口 5984(例如:http://192.168.5.50:5984/_utils#setup)。您将看到 Apache CouchDB 的登录页面。


输入管理员用户名和密码,然后点击登录。


image


若凭证正确,您将进入Apache CouchDB管理控制台。


image


Apache CouchDB数据库管理


登录管理控制台后,接下来将学习如何通过Web界面及Curl工具配合HTTP API创建数据库并插入数据。


Web界面基础操作管理


开始前请确保已登录 Apache CouchDB 管理控制台。

首先通过 Apache CouchDB 网页界面创建新数据库:

点击“数据库”菜单,选择“创建数据库”按钮。


image


输入新数据库名称后点击“创建”。


image


创建完成后,点击目标数据库名称。


创建新文档时,请点击“创建文档”按钮。


image


输入 JSON 数据后,点击“创建文档”确认。


{
    "item": "apple",
   "prices": {
       "Fresh Mart": 1.59,
       "Price Max": 5.99,
       "Apples Express": 0.79
   }
}

image


文档创建完成后,应显示“保存文档中”的提示。


在数据库详情页点击“表”选项卡,即可查看创建的JSON文档。


image


若需修改文档,请点击文档名称进行编辑,完成后点击“保存更改”。您也可通过右侧菜单的删除按钮移除文档。


image


使用Curl进行基础数据库操作


接下来将学习如何通过Curl使用HTTP API创建数据库并向Apache CouchDB插入数据。


首先运行以下命令,通过 curl 向 Apache CouchDB 进行身份验证并列出可用数据库。请务必将管理员用户名和密码替换为您的实际信息:

curl -X GET http://admin:password@192.168.5.50:5984/_all_dbs | jq .

若操作成功,您将看到通过 Web 界面创建的 fruits 数据库。


现在使用 curl 的 PUT 选项创建新数据库,示例如下:

curl -X PUT http://admin:password@192.168.5.50:5984/players | jq .

数据库创建成功后,应获得如下输出:


image


数据库创建完成后,使用以下命令查看 players 数据库详情:

curl -X GET http://admin:password@192.168.5.50:5984/players | jq .

将显示如下输出:


image


接下来,使用以下 curl 命令创建新文档并向 CouchDB 插入数据:

curl -X PUT http://admin:password@192.168.5.50:5984/players/documents \
-d '{"Name": "Nikola Jokic", "Team": "Denver Nuggets"}' | jq .

成功时应返回输出 ‘“ok”: true’。


image


使用以下命令检查文档详情。您应能看到该文档已存在于Apache CouchDB中:

curl -X GET http://admin:password@192.168.5.50:5984/players/documents

您将看到已添加的数据,例如:


image


总结


恭喜!您已在AlmaLinux 9服务器上成功安装Apache CouchDB。您还配置了单节点集群,添加了管理员用户及密码,并设置CouchDB在内部IP地址运行。


此外,您还掌握了通过Web界面和Curl的HTTP API在CouchDB中创建新数据库及插入数据的方法。现在您可以添加更多节点,搭建Apache CouchDB集群以实现性能最大化。