1. CouchDB数据库简介
Apache CouchDB是一个开源的面向文档的NoSQL数据库,使用JSON格式存储数据,支持MapReduce查询。CouchDB以其易用性、可靠性和分布式特性著称,特别适合Web应用和移动应用开发。更多学习教程www.fgedu.net.cn
CouchDB核心特点
文档存储:使用JSON格式存储文档,灵活的数据模型
RESTful API:所有操作通过HTTP API完成,简单易用
MapReduce查询:使用JavaScript编写MapReduce函数进行查询
多版本并发控制:MVCC机制,支持并发读写
分布式复制:支持主主复制,适合分布式部署
2. CouchDB版本说明
Apache CouchDB提供多个版本,用户可根据需求选择。学习交流加群风哥微信: itpux-com
最新版本信息
CouchDB 3.5.1:最新维护版本,发布于2025年11月
CouchDB 3.5.0:稳定版本,包含新特性
CouchDB 3.4.x:历史稳定版本
CouchDB 3.3.x:长期支持版本
版本特性
3.x版本:改进性能,增强安全性,支持集群
2.x版本:支持分布式集群,多节点复制
1.x版本:单节点版本,功能相对较少
3. CouchDB下载地址
CouchDB可以从官方网站或镜像站获取安装包。
官方下载地址
官方网站:https://couchdb.apache.org/
下载页面:https://couchdb.apache.org/#download
GitHub仓库:https://github.com/apache/couchdb
下载安装包
# cd /fgeudb/software
# wget https://dlcdn.apache.org/couchdb/source/3.5.1/apache-couchdb-3.5.1.tar.gz
# 输出示例如下:
–2026-04-04 10:00:00– https://dlcdn.apache.org/couchdb/source/3.5.1/apache-couchdb-3.5.1.tar.gz
Resolving dlcdn.apache.org… 151.101.2.132
Connecting to dlcdn.apache.org|151.101.2.132|:443… connected.
HTTP request sent, awaiting response… 200 OK
Length: 52428800 (50M) [application/gzip]
Saving to: ‘apache-couchdb-3.5.1.tar.gz’
apache-couchdb-3.5.1.tar.gz 100%[===================>] 50.00M 15.2MB/s in 3.3s
2026-04-04 10:00:05 (15.2 MB/s) – ‘apache-couchdb-3.5.1.tar.gz’ saved
# 验证下载文件
# ls -lh apache-couchdb-3.5.1.tar.gz
-rw-r–r–. 1 root root 50M Apr 4 10:00 apache-couchdb-3.5.1.tar.gz
4. 环境准备
在安装CouchDB之前,需要准备必要的系统环境和依赖。
系统要求
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.9 (Maipo)
# 检查系统架构
# uname -m
x86_64
# 检查内存和磁盘空间
# free -h
total used free shared buff/cache available
Mem: 15G 1.2G 13G 8.5M 1.0G 13G
Swap: 7.9G 0B 7.9G
# df -h /fgeudb
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 500G 20G 480G 4% /fgeudb
# 创建CouchDB用户和组
# groupadd -g 5003 couchdb
# useradd -g couchdb -u 5003 -d /home/couchdb -s /bin/bash couchdb
# 创建安装目录
# mkdir -p /fgeudb/couchdb/{data,logs,config}
# chown -R couchdb:couchdb /fgeudb/couchdb
安装依赖包
# yum install -y epel-release
# yum install -y erlang
# 输出示例如下:
Installed:
erlang.x86_64 0:25.3.2-1.el7
# 验证Erlang安装
# erl -version
Erlang (SHELL) 25.3.2
# 安装其他依赖
# yum install -y libicu-devel openssl-devel curl-devel
5. RPM包安装实战
使用RPM包安装是最简单的方式,以下是详细步骤。学习交流加群风哥QQ113257174
步骤1:配置Apache CouchDB仓库
# vi /etc/yum.repos.d/apache-couchdb.repo
[apache-couchdb]
name=Apache CouchDB Repository
baseurl=https://apache.jfrog.io/artifactory/couchdb-rpm/el$releasever/$basearch/
gpgcheck=1
gpgkey=https://couchdb.apache.org/repo/keys.asc
enabled=1
# 导入GPG密钥
# rpm –import https://couchdb.apache.org/repo/keys.asc
# 更新仓库缓存
# yum makecache
# 输出示例如下:
apache-couchdb | 2.5 kB 00:00:00
Metadata Cache Created
步骤2:安装CouchDB
# yum install -y couchdb
# 输出示例如下:
Resolving Dependencies
–> Running transaction check
—> Package couchdb.x86_64 0:3.5.1-1.el7 will be installed
–> Processing Dependency: erlang >= 20 for package: couchdb-3.5.1-1.el7.x86_64
–> Finished Dependency Resolution
Dependencies Resolved
================================================================================
Package Arch Version Repository Size
================================================================================
Installing:
couchdb x86_64 3.5.1-1.el7 apache-couchdb 50 M
Transaction Summary
================================================================================
Install 1 Package
Total download size: 50 M
Installed size: 200 M
Downloading packages:
couchdb-3.5.1-1.el7.x86_64.rpm | 50 MB 00:00:15
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : couchdb-3.5.1-1.el7.x86_64 1/1
Verifying : couchdb-3.5.1-1.el7.x86_64 1/1
Installed:
couchdb.x86_64 0:3.5.1-1.el7
Complete!
步骤3:配置CouchDB
# vi /opt/couchdb/etc/local.ini
# 添加以下配置
[admins]
admin = YourSecurePassword123!
[couchdb]
single_node=true
[chttpd]
port = 5984
bind_address = 192.168.1.51
[httpd]
enable_cors = true
[cors]
origins = *
methods = GET, PUT, POST, HEAD, DELETE
credentials = true
headers = accept, authorization, content-type, origin, referer
# 保存配置文件
步骤4:启动服务
# systemctl start couchdb
# 设置开机自启
# systemctl enable couchdb
# 输出示例如下:
Created symlink from /etc/systemd/system/multi-user.target.wants/couchdb.service to /usr/lib/systemd/system/couchdb.service.
# 检查服务状态
# systemctl status couchdb
● couchdb.service – Apache CouchDB
Loaded: loaded (/usr/lib/systemd/system/couchdb.service; enabled)
Active: active (running) since Fri 2026-04-04 10:15:00 CST; 10s ago
Main PID: 12345 (beam.smp)
CGroup: /system.slice/couchdb.service
├─12345 /opt/couchdb/bin/../erts-13.2.2/bin/beam.smp
└─12346 /opt/couchdb/bin/../erts-13.2.2/bin/epmd -daemon
# 检查端口
# netstat -tlnp | grep 5984
tcp 0 0 192.168.1.51:5984 0.0.0.0:* LISTEN 12345/beam.smp
6. Docker容器安装实战
使用Docker容器安装CouchDB是最快捷的方式,适合快速测试和开发环境。更多学习教程公众号风哥教程itpux_com
步骤1:拉取CouchDB镜像
# docker pull couchdb:3.5.1
# 输出示例如下:
3.5.1: Pulling from library/couchdb
f1f26f570256: Pull complete
8f8e43ef9c3a: Pull complete
e9d8dca5b8a5: Pull complete
a1b8d4c4a5e6: Pull complete
b2c3d4e5f6a7: Pull complete
Digest: sha256:abc123def456…
Status: Downloaded newer image for couchdb:3.5.1
docker.io/library/couchdb:3.5.1
# 查看镜像
# docker images | grep couchdb
couchdb 3.5.1 abc123def456 2 weeks ago 500MB
步骤2:运行CouchDB容器
# mkdir -p /fgeudb/couchdb/{data,config}
# 运行CouchDB容器
# docker run -d \
–name couchdb \
-p 5984:5984 \
-e COUCHDB_USER=admin \
-e COUCHDB_PASSWORD=YourSecurePassword123! \
-v /fgeudb/couchdb/data:/opt/couchdb/data \
-v /fgeudb/couchdb/config:/opt/couchdb/etc/local.d \
couchdb:3.5.1
# 输出示例如下:
abc123def456789…
# 检查容器状态
# docker ps | grep couchdb
abc123def456 couchdb:3.5.1 “/opt/couchdb/bin/co…” 10 seconds ago Up 9 seconds 0.0.0.0:5984->5984/tcp couchdb
# 查看容器日志
# docker logs couchdb
# 输出示例如下:
[notice] 2026-04-04T10:20:00.000000Z couchdb@127.0.0.1 <0.123.0> ——– Apache CouchDB has started. Time to relax.
[info] 2026-04-04T10:20:00.000000Z couchdb@127.0.0.1 <0.456.0> ——– Apache CouchDB has started on http://192.168.1.51:5984/
7. CouchDB配置优化
以下是生产环境的CouchDB配置优化建议。
配置文件优化
# vi /opt/couchdb/etc/local.ini
# 数据库配置
[couchdb]
database_dir = /fgeudb/couchdb/data
view_index_dir = /fgeudb/couchdb/data
max_document_size = 8388608
max_attachment_size = 104857600
# HTTP服务器配置
[chttpd]
port = 5984
bind_address = 192.168.1.51
max_http_request_size = 4294967296
enable_xframe_options = true
# 集群配置(如需集群模式)
[cluster]
q=8
r=2
w=2
n=3
# 日志配置
[log]
writer = file
file = /fgeudb/couchdb/logs/couchdb.log
level = info
# 安全配置
[admins]
admin = YourSecurePassword123!
[couch_httpd_auth]
require_valid_user = true
timeout = 3600
# 保存配置文件
创建系统数据库
$ curl -X PUT http://admin:YourSecurePassword123!@192.168.1.51:5984/_users
$ curl -X PUT http://admin:YourSecurePassword123!@192.168.1.51:5984/_replicator
$ curl -X PUT http://admin:YourSecurePassword123!@192.168.1.51:5984/_global_changes
# 输出示例如下:
{“ok”:true}
{“ok”:true}
{“ok”:true}
8. 安装验证与测试
安装完成后,需要进行验证测试确保CouchDB正常运行。
检查服务状态
$ curl http://admin:YourSecurePassword123!@192.168.1.51:5984/
# 输出示例如下:
{
“couchdb”: “Welcome”,
“version”: “3.5.1”,
“git_sha”: “abc123def”,
“features”: [
“access-ready”,
“partitioned”,
“pluggable-storage-engines”,
“reshard”,
“scheduler”
],
“vendor”: {
“name”: “The Apache Software Foundation”
}
}
# 检查活动任务
$ curl http://admin:YourSecurePassword123!@192.168.1.51:5984/_active_tasks
# 输出示例如下:
[]
创建数据库和文档
$ curl -X PUT http://admin:YourSecurePassword123!@192.168.1.51:5984/testdb
# 输出示例如下:
{“ok”:true}
# 创建文档
$ curl -X PUT http://admin:YourSecurePassword123!@192.168.1.51:5984/testdb/001 \
-H “Content-Type: application/json” \
-d ‘{“name”: “Zhang San”, “age”: 30, “city”: “Beijing”}’
# 输出示例如下:
{“ok”:true,”id”:”001″,”rev”:”1-abc123def456″}
# 获取文档
$ curl http://admin:YourSecurePassword123!@192.168.1.51:5984/testdb/001
# 输出示例如下:
{“_id”:”001″,”_rev”:”1-abc123def456″,”name”:”Zhang San”,”age”:30,”city”:”Beijing”}
# 查询所有文档
$ curl http://admin:YourSecurePassword123!@192.168.1.51:5984/testdb/_all_docs
# 输出示例如下:
{
“total_rows”: 1,
“offset”: 0,
“rows”: [
{
“id”: “001”,
“key”: “001”,
“value”: {
“rev”: “1-abc123def456”
}
}
]
}
创建视图查询
$ curl -X PUT http://admin:YourSecurePassword123!@192.168.1.51:5984/testdb/_design/mydesign \
-H “Content-Type: application/json” \
-d ‘{
“views”: {
“by_name”: {
“map”: “function(doc) { emit(doc.name, doc); }”
},
“by_age”: {
“map”: “function(doc) { emit(doc.age, doc); }”
}
}
}’
# 输出示例如下:
{“ok”:true,”id”:”_design/mydesign”,”rev”:”1-xyz789abc”}
# 使用视图查询
$ curl http://admin:YourSecurePassword123!@192.168.1.51:5984/testdb/_design/mydesign/_view/by_name
# 输出示例如下:
{
“total_rows”: 1,
“offset”: 0,
“rows”: [
{
“id”: “001”,
“key”: “Zhang San”,
“value”: {
“_id”: “001”,
“_rev”: “1-abc123def456”,
“name”: “Zhang San”,
“age”: 30,
“city”: “Beijing”
}
}
]
}
Fauxton Web界面
# 浏览器打开:http://192.168.1.51:5984/_utils/
# 登录信息:
# 用户名:admin
# 密码:YourSecurePassword123!
# Fauxton功能:
# – 数据库管理
# – 文档编辑
# – 视图创建
# – 复制配置
# – 用户管理
# – 系统监控
至此,CouchDB数据库的下载和安装已完成。后续可以根据实际业务需求创建数据库、设计视图和配置复制。
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
