尝试更新_security时,CouchDB给予no_majority

时间:2018-01-29 19:54:03

标签: couchdb

在couchdb升级之后,再也无法创建新数据库或更新旧数据库的_security。

5 个答案:

答案 0 :(得分:1)

另一个原因可能是旧节点在_membership配置中挥之不去。

即,_membership显示:

{
    "all_nodes": [
        "couchdb@localhost"
    ],
    "cluster_nodes": [
        "couchdb@127.0.0.1",
        "couchdb@localhost"
    ]
}

何时显示

{
    "all_nodes": [
        "couchdb@localhost"
    ],
    "cluster_nodes": [
        "couchdb@localhost"
    ]
}

按照docs中的说明删除了坏群集节点。

请注意,_nodes可能在端口5984上不可用,但仅在5986上可用。

答案 1 :(得分:1)

对于到/ db / _security的PUT,如果用户不是数据库管理员或服务器管理员,则响应为HTTP状态500,其中包含{“ error”:“ error”,“ reason”:“ no_majority”},但服务器日志信息更丰富,包括:{禁止,<<“您不是数据库或服务器管理员。” >>}

答案 2 :(得分:0)

一个原因可能是couchdb进程达到了最大打开文件数,导致读取错误和(错误地)no_majority错误。

答案 3 :(得分:0)

另一个原因可能是服务器从单节点配置切换到多节点配置(例如在升级期间)。

将节点数更改为1有助于

答案 4 :(得分:0)

我刚刚在CouchDB 2.1.1中遇到了这个问题。我的问题是我尝试传递的安全对象格式错误。

https://issues.apache.org/jira/browse/COUCHDB-2326

  

尝试编写格式错误的“ admins”或“ members”值的安全对象将导致HTTP 500响应具有以下内容:

driver = webdriver.Chrome('/usr/lib/chromium-rowser/chromedriver',port=3000)
  

这实际上应该是HTTP 400响应,带有“ bad_request”错误值和不同的错误原因。

     

要复制:

{"error":"error","reason":"no_majority"}