3.1. 配置简介

3.1.1. 配置文件

默认情况下,CouchDB按以下顺序从以下位置读取配置文件:

  1. etc/default.ini
  2. etc/default.d/*.ini
  3. etc/local.ini
  4. etc/local.d/*.ini

所有路径都是相对于CouchDB安装目录指定的: /opt/couchdb 建议在类UNIX系统上使用 C:\CouchDB 建议在Windows系统上使用,在MacOS上使用两个目录的组合: Applications/Apache CouchDB.app/Contents/Resources/couchdbx-core/etc 对于 default.inidefault.d 目录,并且其中之一 /Users/<your-user>/Library/Application Support/CouchDB2/etc/couchdb/Users/<your-user>/Library/Preferences/couchdb2-local.ini 对于 local.inilocal.d 目录。

连续文档中的设置会覆盖以前条目中的设置。例如,设置 chttpd/bind_address 参数在 local.ini 会覆盖中的任何设置 default.ini .

警告

这个 default.ini 文件可能在升级或重新安装期间被覆盖,因此应对 local.ini 文件 local.d 目录。

可以通过设置ERL_FLAGS环境变量来更改配置文件链:

export ERL_FLAGS="-couch_ini /path/to/my/default.ini /path/to/my/local.ini"

或者把 -couch_ini .. 直接在 etc/vm.args file. Passing -couch_ini .. 启动时作为命令行参数 couchdb 与设置 ERL_FLAGS 环境变量。

警告

环境变量/命令行标志重写任何 -couch_ini 中指定的选项 etc/vm.args 文件。而且, BOTH 在这些选项中 完全地 覆盖CouchDB以避免在默认位置进行搜索。仅在必要时使用这些选项,并确保跟踪 etc/default.ini ,在将来的版本中可能会更改。

如果需要使用不同的 vm.argssys.config 例如,在CouchDB提供的文件的不同位置,或者您不想编辑原始文件,可以通过设置CouchDB_ARGS_FILE或CouchDB_SYSCONFIG_FILE环境变量来更改默认位置:

export COUCHDB_ARGS_FILE="/path/to/my/vm.args"
export COUCHDB_SYSCONFIG_FILE="/path/to/my/sys.config"

3.1.2. 参数名称和值

所有参数名都是 case-sensitive . 每个参数取五种类型之一的值: boolean, integer, string, tupleproplist . 布尔值可以写成 truefalse .

值类型为的参数 tupleproplist 遵循Erlang对样式和命名的要求。

3.1.3. 通过配置文件设置参数

设置某些参数的常用方法是编辑 local.ini 文件(上述位置说明)。

例如::

; This is a comment
[section]
param = value ; inline comments are allowed

每个配置文件行可能包含 section 定义, parameter 规范,空(仅限空格和换行符)或 commented 行。你可以设置 inline 评论 sectionsparameters .

这个 section 定义属于某个特定CouchDB子系统的参数组。例如, httpd 节不仅包含HTTP服务器参数,还包含其他直接与之交互的参数。

这个 parameter 规范包含两部分除以 equal 签名 (= ):左边是参数名,右边是参数值。的前导空格和后空格 = 是提高配置可读性的可选选项。

注解

如果您想从 default.ini 在不修改该文件的情况下,可以在中重写 local.ini ,但没有任何值:

[compactions]
_default =

这可以理解为:“移除 _default 参数来自 compactions 如果以前设置过的话。

分号 (; )表示注释的开始。这个字符后面的所有内容都被CouchDB忽略。

编辑配置文件后,应该重新启动CouchDB以应用任何更改。

3.1.4. 通过HTTP API设置参数

或者,可以通过 HTTP API . 此API允许动态更改CouchDB配置,而无需重新启动服务器:

curl -X PUT http://localhost:5984/_node/<name@host>/_config/uuids/algorithm -d '"random"'

旧参数的值在响应中返回:

"sequential"

您应该小心地通过httpapi更改配置,因为有可能使CouchDB无法访问,例如,通过更改 chttpd/bind_address ::

curl -X PUT http://localhost:5984/_node/<name@host>/_config/chttpd/bind_address -d '"10.10.0.128"'

如果您输入错误或指定的IP地址在您的网络中不可用,CouchDB将无法访问。解决此问题的唯一方法是远程进入服务器,更正配置文件,然后重新启动CouchDB。为了保护您自己免受此类事故的影响,您可以将 chttpd/config_whitelist 允许通过HTTP API进行更新的配置参数。设置此选项后,必须通过配置文件对非白名单参数进行进一步更改,并且在大多数情况下,还需要重新启动服务器才能生效。

3.1.5. 配置本地节点

HTTP API 允许配置群集中的所有节点,为了方便起见,可以使用文本字符串 _local 代替节点名,与本地节点的配置交互。例如::

curl -X PUT http://localhost:5984/_node/_local/_config/uuids/algorithm -d '"random"'