Apache CouchDB 是由 Apache 软件基金会开发的免费开源 NoSQL 数据库。它可以作为单节点或集群数据库使用。

CouchDB 服务器将其数据存储在一个个具名的数据库中,这些数据库包含具有 JSON 结构的文档。每个文档由若干字段和附件组成。字段可以包含文本、数字、列表、布尔值等。它提供了一个 RESTful HTTP API,允许你读取、创建、编辑和删除数据库文档。

在本文中,我们将介绍如何在 CentOS 8 上安装 CouchDB。

启用 CouchDB 软件源

在 CentOS 8 上安装 CouchDB 最简单的方法是启用供应商软件源并安装二进制软件包。

以 root 用户或具有 sudo 权限的用户打开你选择的编辑器,并创建 CouchDB 软件源文件:

sudo nano /etc/yum.repos.d/bintray-apache-couchdb-rpm.repo

将以下内容粘贴到文件中:

/etc/yum.repos.d/bintray-apache-couchdb-rpm.repoini
[bintray--apache-couchdb-rpm]
name=bintray--apache-couchdb-rpm
baseurl=http://apache.bintray.com/couchdb-rpm/el$releasever/$basearch/
gpgcheck=0
repo_gpgcheck=0
enabled=1

保存文件并关闭编辑器。

在 CentOS 上安装 CouchDB

运行以下命令来安装 CouchDB 软件包:

sudo dnf install couchdb

安装完成后,启用并启动 CouchDB 服务:

sudo systemctl enable --now couchdb

配置 CouchDB

CouchDB 可以设置为单节点或集群模式。在本示例中,我们将以单节点配置部署服务器。有关如何设置 CouchDB 集群模式的详细信息,请参阅官方文档。

你可以使用 Fauxton(位于 http://127.0.0.1:5984/_utils#setup)或从命令行来配置 CouchDB。设置向导将引导你完成模式选择和管理员创建过程。

我们将通过命令行创建管理员用户和数据库。

Apache CouchDB 的数据文件和配置文件存储在 /opt/couchdb 目录中。要创建一个管理员账户,请打开 local.ini 文件,并在 [admins] 部分下按照 username = password 的格式添加一行。

sudo nano /opt/couchdb/etc/local.ini
/opt/couchdb/etc/local.iniini
[admins]
admin = mysecretpassword

重启 CouchDB 服务以将密码更改为哈希值:

sudo systemctl restart couchdb

你可以使用相同的格式添加多个管理员账户。每次添加新账户后,请务必重启 CouchDB 服务。

使用 curl 创建系统数据库 _users、_replicator 和 _global_changes:

curl -u ADMINUSER:PASS -X PUT http://127.0.0.1:5984/_users
curl -u ADMINUSER:PASS -X PUT http://127.0.0.1:5984/_replicator
curl -u ADMINUSER:PASS -X PUT http://127.0.0.1:5984/_global_changes

每条命令应返回以下内容:

{"ok":true}

验证 CouchDB 安装

CouchDB 服务器正在 localhost:5984 上运行。为了验证安装是否成功以及服务是否正在运行,请运行以下 curl 命令,该命令将以 JSON 格式打印关于 CouchDB 数据库的信息:

curl http://127.0.0.1:5984/

为了清晰起见,下方的输出经过了格式化。

{ 
   "couchdb":"Welcome",
   "version":"2.3.1",
   "git_sha":"c298091a4",
   "uuid":"5e3878666b1077eb9d4a7ba7b06c251b",
   "features":[ 
      "pluggable-storage-engines",
      "scheduler"
   ],
   "vendor":{ 
      "name":"The Apache Software Foundation"
   }
}

如果你更喜欢图形界面,可以通过以下地址访问基于 Web 的 CouchDB 界面 Fauxton:

http://127.0.0.1:5984/_utils/
CouchDB Fauxton