设置 CouchDB 2.0 集群

Setup CouchDB 2.0 Cluster

我正在尝试为边缘计算项目设置一个带有一些 Raspberry Pi 的 CouchDB 集群。但是到目前为止我所做的一切都没有成功。我没有让集群正常工作。

这就是我所做的: 我遵循了安装指南 http://docs.couchdb.org/en/2.0.0/install/unix.html#

结合: https://medium.com/linagora-engineering/setting-up-a-couchdb-2-cluster-on-centos-7-8cbf32ae619f#.eopseqi4h

  1. 正在安装依赖项 - 工作正常
  2. ./configure - 工作正常
  3. make release - 工作正常

  4. 按照指南:添加 couchdb 用户:

    adduser --system --no-create-home --shell /bin/bash --group --gecos   
    "CouchDB Administrator" couchdb
    

    工作没有错误

  5. mv rel/couchdb /usr/local/ - 工作正常

  6. chown -R couchdb:couchdb /usr/local/couchdb - 首先没有工作 - 没有用户组 couchdb - 添加了用户组
  7. 更改了 /usr/local/couchdb/etc/vm.args 中的节点名称:-name n1.couch.local 添加了 -kernel inet_dist_listen_min 9100 -kernel inet_dist_listen_max 9200 - 没有用 - 改回 couchdb @localhost

  8. 盯着数据库

    su - couchdb
    cd /usr/local/couchdb
    ./bin/couchdb
    

    -首先对我不起作用,su pw - 身份验证失败 - 通过 sudo susu - couchdb

  9. 切换用户
  10. db 启动 - 运行,但抛出错误(暂时忽略错误,因为 db 是 运行):

    [error] 2017-02-17T12:34:26.672758Z couchdb@localhost emulator ------    
    -- Error in process <0.354.0> on node 'couchdb@localhost' with exit 
    value: {database_does_not_exist,
    [{mem3_shards,load_shards_from_db,"_users",
    [{file,"src/mem3_shards.erl"},{line,327}]},
    {mem3_shards,load_shards_from_disk,1,[{file,"src/mem3_shards.erl"},
    {line,315}]},{mem3_shards,load_shards_from_disk... 
    [notice] 2017-02-17T12:34:26.672918Z couchdb@localhost <0.353.0> ----
    ---- chttpd_auth_cache changes listener died database_does_not_exist 
    at mem3_shards:load_shards_from_db/6(line:327) <= 
    mem3_shards:load_shards_from_disk/1(line:315) <= 
    mem3_shards:load_shards_from_disk/2(line:331) <=  
    mem3_shards:for_docid/3(line:87) <= fabric_doc_open:go/3(line:38) <= 
    chttpd_auth_cache:ensure_auth_ddoc_exists/2(line:187) <= 
    chttpd_auth_cache:listen_for_changes/1(line:134)
    
  11. 为集群模式准备了两个 Raspberry Pi(2 个 CouchDB 节点):

    curl -X PUT http://127.0.0.1:5984/_node/couchdb@localhost/
    _config/admins/admin -d '"conmonmrp"'` 
    
    • 答案:

      "-pbkdf2-9ec43ace4195ee45a37773c9dfc2aba9380468cb, cddfb98dd1b2416dea2b53dc9fe9a31b,10"

    `curl -X PUT http://127.0.0.1:5984/_node/couchdb@localhost/
    _config/chttpd/bind_address -d '"0.0.0.0"'` 
    
    • 答案:"0.0.0.0"

    似乎命令已被接受

  12. 继续 localhost:5984/_utils/ 并尝试设置集群 - 输入凭据(未更改 IP 和端口)并通过 IP 添加另一个节点(网络 IP,即 10.228.101.210 ), 创建集群以完成设置 - fauxton 无误地接受了。

  13. 尝试通过 localhost:5984/_membership/ 获取集群中的所有节点导致:

    {"all_nodes":["couchdb@localhost"],"cluster_nodes":     
    ["couchdb@10.228.101.210","couchdb@localhost"]}`
    
  14. 尝试在一个节点上添加数据库并在另一个节点上查看它不起作用

我对 CouchDB 真的很陌生,但我需要得到那个集群 运行。我希望,我的描述有助于找到问题所在。总而言之,我有一种感觉,我错过了或误解了一个重要的观点。

来自德国汉堡的问候

在设置集群遇到一些麻烦后,一个朋友发现了问题。需要更改 /couchdb/etc/vm.args 文件中的节点名称。正如我在另一个 post 中读到的那样,将它命名为 @localhost 是非法的。我将其更改为设备的 IP 地址。

之后,我现在一切正常。

还请记住,在设置集群以及在添加或重新启动时发现问题等...请确保您的 "cookie" 没有空格。