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
使用以下命令将 Apache CouchDB 仓库添加至系统:
sudo dnf config-manager --add-repo https://couchdb.apache.org/repo/couchdb.repo
现在执行以下 dnf 命令检查系统可用仓库,确保 Apache CouchDB 仓库已添加:
sudo dnf repolist

添加仓库后,使用以下 dnf 命令安装 Apache CouchDB 软件包:
sudo dnf install couchdb
输入 y 并按回车继续。

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

安装完成后继续操作。
通过仓库安装 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

最后通过以下命令验证服务状态:
sudo systemctl status couchdb
若服务正常运行,应显示类似 ‘active (running)’ 的输出结果。

配置 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

最后运行 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 .
若安装成功,应显示以下内容:

访问 Apache CouchDB Web 管理界面
至此您已完成 Apache CouchDB 与 firewalld 的配置,可访问 CouchDB 安装环境。
访问 Apache CouchDB 时,请在浏览器中输入服务器 IP 地址后接端口 5984(例如:http://192.168.5.50:5984/_utils#setup)。您将看到 Apache CouchDB 的登录页面。
输入管理员用户名和密码,然后点击登录。

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

Apache CouchDB数据库管理
登录管理控制台后,接下来将学习如何通过Web界面及Curl工具配合HTTP API创建数据库并插入数据。
Web界面基础操作管理
开始前请确保已登录 Apache CouchDB 管理控制台。
首先通过 Apache CouchDB 网页界面创建新数据库:
点击“数据库”菜单,选择“创建数据库”按钮。

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

创建完成后,点击目标数据库名称。
创建新文档时,请点击“创建文档”按钮。

输入 JSON 数据后,点击“创建文档”确认。
{
"item": "apple",
"prices": {
"Fresh Mart": 1.59,
"Price Max": 5.99,
"Apples Express": 0.79
}
}
文档创建完成后,应显示“保存文档中”的提示。
在数据库详情页点击“表”选项卡,即可查看创建的JSON文档。

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

使用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 .
数据库创建成功后,应获得如下输出:

数据库创建完成后,使用以下命令查看 players 数据库详情:
curl -X GET http://admin:password@192.168.5.50:5984/players | jq .
将显示如下输出:

接下来,使用以下 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’。

使用以下命令检查文档详情。您应能看到该文档已存在于Apache CouchDB中:
curl -X GET http://admin:password@192.168.5.50:5984/players/documents
您将看到已添加的数据,例如:

总结
恭喜!您已在AlmaLinux 9服务器上成功安装Apache CouchDB。您还配置了单节点集群,添加了管理员用户及密码,并设置CouchDB在内部IP地址运行。
此外,您还掌握了通过Web界面和Curl的HTTP API在CouchDB中创建新数据库及插入数据的方法。现在您可以添加更多节点,搭建Apache CouchDB集群以实现性能最大化。
