Skip to content

Latest commit

 

History

History
84 lines (57 loc) · 3.36 KB

couchdb.md

File metadata and controls

84 lines (57 loc) · 3.36 KB

Couchdb安装(Debian or Ubuntu)

sudo apt update && sudo apt install -y curl apt-transport-https gnupg
curl https://couchdb.apache.org/repo/keys.asc | gpg --dearmor | sudo tee /usr/share/keyrings/couchdb-archive-keyring.gpg >/dev/null 2>&1
source /etc/os-release
echo "deb [signed-by=/usr/share/keyrings/couchdb-archive-keyring.gpg] https://apache.jfrog.io/artifactory/couchdb-deb/ ${VERSION_CODENAME} main" \
    | sudo tee /etc/apt/sources.list.d/couchdb.list >/dev/null
    
    
sudo apt update
sudo apt install -y couchdb

「 更多安装指导请看 Couchdb 官方文档 https://docs.couchdb.org/en/stable/install/unix.html

如果出现 CouchDB Erlang magic cookie 填写界面,填写一个字符串即可。

设置 Couchdb 管理密码

如果需要支持 https 协议,可以用 nginx 做反向代理 。具体配置看下面链接文档 https://docs.couchdb.org/en/stable/best-practices/reverse-proxies.html#reverse-proxying-with-nginx 另外 由于同步的时候会做一些批量操作,可能单个请求数据量比较大, nginx 做反向代理还需注意 413 – Request Entity Too Large 的问题 https://www.cyberciti.biz/faq/linux-unix-bsd-nginx-413-request-entity-too-large/ 需要把 client_max_body_size 设置为比较大一点的值 比如 client_max_body_size 20M;

Couchdb 默认的端口是 5984. 假如你的服务器 IP 地址是 114.215.127.34 那么访问 http://114.215.127.34:5984/ 会看到类似下面的响应,你可以通过访问这个地址来看看 Couchdb 是否正确的安装了

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

Couchdb 的 Web 管理端地址是 http://114.215.127.34:5984/_utils 用户名是 admin,密码是安装 couchdb 的时候设置的密码

先通过这个 Web 管理端把 Couchdb 配置为 couch_peruser 模式 (couch_peruser 模式下 couchdb 会为每个_users 数据库中的每个新用户创建一个数据库。如果设置中没有出现 couch_peruser 设置选项,点击右上角的 Add Option 按照下图把这三个值添加进去即可)

创建 _users 数据库

curl -X PUT http://admin:admin_password@114.215.127.34:5984/_users \
     -H "Accept: application/json" \
     -H "Content-Type: application/json" \
     

在 _users 数据库中创建用户

用 couchdb 管理员账户,创建一个用户名为 jan 密码为 apple 的用户

curl -X PUT http://admin:admin_password@114.215.127.34:5984/_users/org.couchdb.user:jan \
     -H "Accept: application/json" \
     -H "Content-Type: application/json" \
     -d '{"name": "jan", "password": "apple", "roles": [], "type": "user"}'
     

用户 jan 创建后,你发现 Couchdb 同时为这个用户创建了一个数据库 userdb-6a616e (数据库名是前缀 userdb- 加用户名的hex字符串)

那么这个用户的同步地址就是 http://jan:apple@114.215.127.34:5984/userdb-6a616e

另外 couchdb 默认的情况下是允许匿名创建用户的。可以修改 _users 数据库的权限来禁止匿名创建用户.具体可看这个帖子 https://serverfault.com/questions/742184/couchdb-user-creation-without-authentication-standard-behavior