暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

TutorialsPoint CouchDB

原创 yBmZlQzJ 2023-02-16
834


TutorialsPoint CouchDB 教程


CouchDB教程™

CouchDB是由Apache软件基础开发的开源NoSQL数据库,它是用Erlang编程语言编写的。

我们的CouchDB教程提供CouchDB的基本和高级概念,是为初学者和专业人士设计的。


CouchDB教程

CouchDB教程包括CouchDB的所有主题,如:CouchDB couchdb fauxton,http api,安装,couchdb vs mongodb,创建数据库,创建文档,特征,介绍,更新文档,为什么使用couchdb等等。

前提条件

在学习CouchDB之前,您必须具备使用基本的SQL语句和MySql数据库的基本知识。

面向读者

我们的CouchDB教程旨在帮助初学者和专业人士。

问题反馈

我们不能保证您在此CouchDB教程中不会遇到任何问题。本教程中的讲解,示例和代码等只是根据作者的理解来概括写出。由于作者水平和能力有限,因此不保正所有的编写文章都准确无误。但是如果有遇到任何错误或问题,请反馈给我们,我们会及时纠正以方便后继读者阅读。


本站所有代码下载:请扫描本页面底部二维码并关注微信公众号,回复:"代码下载" 获取。

本文属作者原创,转载请注明出处:易百教程 » CouchDB教程

CouchDB快速入门 - CouchDB教程™

Apache CouchDB数据库,它类似于Redis,Cassandra和MongoDB,也是一个NoSQL数据库。 CouchDB将数据存储为非关系性的JSON文档。 这使得CouchDB的用户可以以与现实世界相似的方式来存储数据。

可以从命令行或一个叫作Futon的Web界面来管理CouchDB。 Futon可用于执行管理任务,如创建和操作CouchDB的数据库,文档和用户等。

本文章的目标

在阅读学习本文完后,您将学会以下知识:

  • 将CouchDB安装在运行Ubuntu 14.04上。
  • 将Futon安装在同一台服务器上
  • 使用安全通道从本地机器访问CouchDB
  • 向CouchDB添加管理员用户
  • 如何使用Futon执行CouchDB的CRUD操作
  • 从命令行执行CouchDB的CRUD操作

先决条件

请准备/完成以下两个先决条件:

  • Ubuntu 14.04系统
  • 拥有管理权限的用户身份登录到服务器

注意:本教程假设使用的是非root用户,并可以执行root用户权限。请注意,如果您使用非root用户,首次使用sudo执行命令时,系统将要求您输入root用户的密码。

步骤1 - 准备服务器

在安装CouchDB之前,需要确保已经设置好了服务器。

开始更新系统:

$ sudo apt-get update

安装允许管理源存储库的软件:

$ sudo apt-get install software-properties-common -y

注意:-y标志告诉apt-get命令对安装过程中可能出现的所有提示以Yes响应。 如果您喜欢手动响应提示,可以删除此标志。

添加PPA,以从相应的存储库获取最新的CouchDB版本:

$ sudo add-apt-repository ppa:couchdb/stable -y

警告:在您的服务器上添加一个新的个人包存档(PPA)时,应该非常小心。 因为任何人都可以创建PPA,所以不能保证它是可信赖的,或者它是安全的。 在这种情况下,上述PPA是由Apache CouchDB团队维护的官方PPA。

经过上一步,已经添加了一个新的PPA,接下来需要更新系统,使其具有最新的包信息:

$ sudo apt-get update

现在可以安装CouchDB和Futon了。

步骤2 - 安装CouchDB

如果之前有在此服务器上安装过CouchDB,请先删除现有版本,使用以下命令:

$ sudo apt-get remove couchdb couchdb-bin couchdb-common -yf

现在安装CouchDB:

$ sudo apt-get install couchdb -y

这将在您服务器上安装CouchDB和Futon。

默认情况下,CouchDB在localhost上并使用端口5984运行,可以通过从命令行运行curl来检索此基本信息:

$ curl localhost:5984

注意:如果没有安装curl程序工具,可以使用sudo apt-get install curl命令进行安装。

执行上面命令请求,应该得到类似于以下内容:

{"couchdb":"Welcome","uuid":"b9dsf278cfdas743b5fdfsaafd399fas7582e","version":"1.6.1","vendor":{"name":"Ubuntu","version":"14.04"}}

现在可以使用curl -X PUT命令创建一个新的数据库:

curl -X PUT localhost:5984/new_database

执行后返回的响应结果如下 -

{"ok":true}

步骤3 - CouchDB安全保护

默认情况下,安装CouchDB时创建的某些文件和目录属于root用户和组。 这在开发过程中虽然不错,但这可能是生产中的安全风险。

安装CouchDB时,它将创建一个用户和一个名为couchdb的组。 在本节中,我们将把CouchDB文件的所有权和权限更改为couchdb用户和组。

更改所有权控制CouchDB进程可以访问内容,并更改可以访问CouchDB文件和目录的权限控制。

更改所有权和权限之前,先停止CouchDB:

$ sudo stop couchdb

更改/usr/lib/couchdb,/usr/share/couchdb和/etc/couchdb目录, 以及/usr/bin/couchdb可执行文件的所有权,使其所有者为couchdb用户,并且属于couchdb组。

sudo chown -R couchdb:couchdb /usr/lib/couchdb /usr/share/couchdb /etc/couchdb /usr/bin/couchdb

现在,更改了/usr/lib/couchdb,/usr/share/couchdb和/etc/couchdb目录, 以及/usr/bin/couchdb可执行文件的权限,以便couchdb用户和couchdb组可自由访问(到CouchDB安装),而其他用户不可以访问这些文件和目录。

sudo chmod -R 0770 /usr/lib/couchdb /usr/share/couchdb /etc/couchdb /usr/bin/couchdb

现在重新启动CouchDB:

sudo start couchdb

CouchDB现在应该启动并运行,而没有任何属于root用户或root组的文件或目录。

步骤4 - 访问Futon

CouchDB提供了一个基于Web的方便控制面板,它叫作:Futon。从本地服务器访问它,将流量通过SSH连接隧道传输到您的服务器。只有SSH登录到您的服务器的用户才能访问Futon控制面板。

要安全地连接到CouchDB(不用公开),您可以创建从本地端口5984到远程服务器端口5984的SSH隧道。

可以使用以下命令在本地计算机运行,以设置隧道:

$ ssh -L5984:127.0.0.1:5984 yiibai_user@your_server_ip

注意:请记住用您的用户名替换yiibai_user,将your_server_ip替换为服务器的IP地址。

连接打开时,使用端口5984从Web浏览器访问Futon。访问此URL以显示Futon页面:

http://localhost:5984/_utils

dac2501a0f0686fd11875326f8ff13ef.jpg

默认情况下,访问Futon的所有CouchDB用户都具有管理权限。如在右下角所示:

b07d7c3168cf988aeaf0c7cb4c884442.jpg

可以通过点击修复此(Fix this)链接并创建新管理员来更改此内容。

步骤5 - 添加管理员用户

现在已经启动运行CouchDB,可以开始使用它了。

在创建管理员用户之前,所有用户都可以以管理权限访问CouchDB(尽管它们首先需要SSH访问服务器)。

为CouchDB创建管理员帐户是一个很好的做法,以防止意外或未经授权的数据丢失。

要执行此操作,请单击显示在“Futon”的右下角的“修复此(Fix this)”链接。 这将显示一个允许您创建CouchDB管理员用户的屏幕,如下所示:

06f1091e27a1727eb64a29ed637e2aab.jpg

输入用户名和密码:

73fd8e5666584dfe4752054c897ad652.jpg

输入新的CouchDB用户名和密码后,单击创建(Create)按钮然后就创建新的管理员用户。 Futon右下角的消息将通过显示类似于以下内容的消息来确认:

73939d46a97c67f46f0716021857e7a3.jpg

注意:创建管理用户可防止未经授权的用户删除和修改数据库,设计文档和CouchDB配置。 但是,它不会阻止其它创建或访问文档。

就这样,有关CouchDB服务器现已完全配置。要了解有关使用数据库的更多信息,请继续阅读。

下面是一条美丽的分割线…

上面是一条美丽的分割线…

从Futon执行CRUD操作

Futon有一个非常简单但有用的用户界面,用来执行基本的CRUD操作(创建,读取,更新和删除)。

在本节中,我们将创建一个名为todos的新数据库,向其中添加一个新文档,然后检索,更新和删除此文档。

注意:如果您已创建管理员用户,则必须以管理员身份登录才能创建新的数据库。

创建数据库和文档

5b444a0405ae2c54fb861481cbbd8cab.jpg

要创建一个名为todos的新数据库,请单击屏幕的左上方的创建数据库(Create Database)链接。 这将出现类似如下对话框:

9f70cd9c5dbbbc860ef133d004e35b34.jpg

输入数据库的名称:todos,然后单击创建按钮。

这将创建一个名为todos的新数据库,并转到可以在新创建的数据库中创建和修改文档的页面。

ea594a6d9ee685219246910322fc99c9.jpg

创建文档

要创建新文档,请单击页面上的“新建文档(New Document)”链接。

这将打开一个带有新文档的屏幕。 这个文档默认只有_id字段。 如果需要,您可以更改此字段的值,也可以按原样保留。

7175c4600208cc741c95ffd788751af9.jpg

单击添加字段(Add Field)链接以向此文档添加新字段。

如上所述,我们添加了两个名为todo和done的字段。 默认情况下,新字段具有空(null)值。可通过双击该值以更改它。

在这个例子中,我们双击了todo和done的值字段,并分别输入了Task 1和false。

输入值后,按ENTER键或点击字段旁边的小绿色复选标记来保存内容(不这样做会使该字段的值为空)。这应该如下所示:

0e14bc35e14ea4bcdf6e794d2b0a641a.jpg

要保存文档,请单击“保存文档(Save Document)”链接。 保存文档后,您将看到已经添加了_rev字段,如下所示:

ec83a6eb86f79028911b0c803491c985.jpg

读取文件

单击todos链接(在“概览(Overview)”链接旁边的顶部栏中)查看新创建的文档,现在它是todos数据库中的唯一文档。

dca2c8f167be718b21db563fd1a34ac3.jpg

单击表格中的文档(ID)的键(红色部分),以访问文档详细信息页面。

编辑文档

在此页面上,可以编辑和更新文档字段,如下:

59bc83f17cafc92f2d376ec0b51ea3bc.jpg

要编辑字段值,可双击对应字段并开始编辑。

您可以删除任何字段(除了_id和_rev字段外),添加新字段,或更改现有字段的值。 在这个例子中,已经将done字段的值从false更改为true,如下所示:

1f83c7dbf05e89b2eeec5927bedf7ae2.jpg

删除文档

要删除文档,可以单击删除文档链接,该链接将提示您进行确认:

2c00c14bab0bc39afd642608ee42d8f4.jpg

按删除(Delete)按钮进行确认。

Futon将删除文档并跳转到todos数据库页面,该页面中文档现在应为空,确认文档确实已被删除。

eaf07dffcc5f421bc19a146a81f3082d.jpg

从命令行执行CRUD操作

本节将说明如何使用curl从命令行在CouchDB数据库上执行基本的CRUD(创建,读取,更新和删除)操作。

创建数据库

如果您尚未创建数据库new_database,请按照以下步骤现在来创建。 该命令应从安装CouchDB数据库的服务器上执行:

curl -X PUT http://localhost:5984/new_database -u "admin:password"
{"ok":true}

由于之前我们向CouchDB添加了管理员用户,因此现在必须在创建新的数据库时发送管理员用户名和密码。
结果应如下所示:

{"ok":true}

创建文档

我们先来创建一个新的文档,使用以下请求命令:

curl -X POST -d '{"todo":"task 1", "done":false}' http://localhost:5984/new_database -H "Content-Type:application/json"

此命令将在new_database数据库中创建一个新文档。

-X标志表示执行HTTP POST方法请求操作。 由于POST方法请求发送一个JSON文档,所以后面的-H标志将此请求的内容类型设置为application/json。 最后,包含了JSON文档本身,使用-d标志。

此操作的响应结果如下:

{"ok":true,"id":"803da996e1524591ce773d24400004ff","rev":"1-2fc1d70532433c39c9f61480607e3681"}

此响应的部分"ok":true表示操作成功。 响应包括分别代表文档ID和文档修订的字段id和rev。 需要修改或删除此文档时,才需要这两个字段。

在此示例中,文档ID由CouchDB生成,因为没有提供该命令。 如果需要,可以创建一个具有生成唯一ID的文档。

用指定的ID创建

创建一个ID为random_task的文档:

curl -X POST -d '{"_id":"random_task", "todo":"task 2", "done":false}' http://localhost:5984/new_database -H "Content-Type:application/json"

此命令创建一个ID为random_task的新文档,对此命令的响应如下:

{"ok":true,"id":"random_task","rev":"1-bceeae3c4a9154c87db1649473316e44"}

创建多个文档

除了创建单个文档,还可以批量创建文档。

curl -X POST -d '{"docs": [{"todo":"task 3", "done":false}, {"todo":"task 4", "done":false}]}' http://localhost:5984/new_database/_bulk_docs -H "Content-Type:application/json"

该命令将在POST正文中指定创建两个文档。 与单个文档插入相比,有两个微小的差异:

  1. 在插入单个文档时,POST正文只是一个标准的JSON对象。 在批量插入的情况下,POST正文包含具有文档字段的对象。 该字段保存要插入的文档数组。
  2. 在插入单个文档时,POST请求已发送到指向数据库的URL(http://localhost:5984/new_database)。 但是,对批量插入请求,URL为:URL:http://localhost:5984/new_database/_bulk_docs。

批量插入操作的响应如下:

[{"ok":true,"id":"803da996e1524591ce773d24400007df","rev":"1-778fd61f8f460d0c1df1bb174279489d"},{"ok":true,"id":"803da996e1524591ce773d2440001723","rev":"1-dc9e84861bba58e5cfefeed8f5133636"}]

读取文件

可通过发出HTTP GET命令来从CouchDB数据库检索文档。现在尝试检索上面创建的一个文档:一个叫random_task的文件。

curl -X GET http://localhost:5984/new_database/random_task

请注意,URL包括正在检索的文档的ID(random_task)。如下所示,对此GET请求的响应包含整个文档以及_id和_rev字段,可用于更新或删除此文档。

{"_id":"random_task","_rev":"1-bceeae3c4a9154c87db1649473316e44","todo":"task 2","done":false}

更新文档

在要更新文档时,包含_rev字段很重要。 CouchDB将拒绝任何不包含_rev字段的更新请求。 由于CouchDB更新整个文档,而不仅仅是其中的一部分,所以在更新操作期间,必须在请求正文中发送整个文档。

要更新使用ID为random_task的文档,我们需要发出HTTP PUT请求,如下所示:

curl -X PUT -d '{"_rev":"1-bceeae3c4a9154c87db1649473316e44", "todo":"task 2", "done":true}' http://localhost:5984/new_database/random_task

因为每个_rev值可能不太一样,所以请确保将_rev值替换为上一个输出中接收到的字符串。

这将修改文档并将done字段更新为true。 对此请求的响应如下:

{"ok":true,"id":"random_task","rev":"2-4cc3dfb6e76befd665faf124b36b7f1c"}

从响应中可以看出,该指定文档的rev字段在更新后会发生更改。 任何将来更新或删除此文档的请求现在都必须使用最新的rev值。

删除文档

使用HTTP DELETE请求要指定包含这个新的rev值来删除这个文档,如下所示:

curl -X DELETE http://localhost:5984/new_database/random_task?rev=2-4cc3dfb6e76befd665faf124b36b7f1c

就像上面的GET&PUT请求一样,DELETE请求使用指向文档的URL。但是,它还包括URL中的附加查询参数。 该参数rev应具有删除操作成功的最新_rev值。

在这种特殊情况下,使用上一步中更新操作后返回的值。 对上述请求的响应如下所示。

{"ok":true,"id":"random_task","rev":"3-07d6cde68be2a559497ec263045edc9d"}

重新启动,停止和启动CouchDB服务

启动,停止和重新启动CouchDB服务是非常简单的。下面我们来看看如何从服务器完成这些步骤。

重新启动CouchDB

要重新启动正在运行的CouchDB实例,请执行以下命令:

$ sudo restart couchdb

此命令将重新启动正在运行的CouchDB实例并显示新实例的进程ID。如果没有CouchDB的实例运行,执行该命令会给出一个消息:

$ restart: Unknown instance:

停止CouchDB

要停止运行的CouchDB实例,请执行以下命令:

$ sudo stop couchdb

执行此命令将停止任何正在运行的CouchDB实例,并提供如下所示的确认消息:

$ couchdb stop/waiting

启动CouchDB

要启动CouchDB,请执行以下命令:

$ sudo start couchdb

如果CouchDB尚未运行,则执行此命令将启动CouchDB并提供如下所示的确认消息:

$ couchdb start/running, process 12345

如果有CouchDB实例已经运行,那么执行上面的命令就会产生一个这样的消息:

$ start: Job is already running: couchdb

CouchDB状态

如果想查看CouchDB的状态,可以使用以下命令:

$ sudo status couchdb

如果CouchDB正在运行,则会提供类似于以下内容的消息:

$ couchdb start/running, process 12345

如果CouchDB没有运行,查看状态将提示消息如下:

couchdb stop/waiting

结束

您现在可以在服务器上使用CouchDB的所有功能了,可以使用Futon或命令行从本地机器安全地管理CouchDB。

最后声明:对伸手党,需要注意的是:本教程包教不包会。


本站所有代码下载:请扫描本页面底部(右侧)二维码并关注微信公众号,回复:"代码下载" 获取。

上一篇:CouchDB删除文档下一篇:哥,这回真没有了

CouchDB是什么? - CouchDB教程™

CouchDB是由Apache软件基础开发的开源NoSQL数据库,它是用Erlang编程语言编写的。

有两种类型的数据库:

  • 关系数据库管理系统(遵循SQL)
  • NoSQL

CRDBMS:关系数据库管理系统

RDBMS是基于E.F. Codd引入的关系模型。它是SQL的基础,大多数数据库系统遵循RDBMS。 一些常见的数据库是:Oracle,MySQL,MS SQL Server,IBM DB2和Microsoft Access等。

NoSQL数据库

NoSQL数据库是其他类型的数据库(非关系数据库),它提供了一种存储和检索RDBMS中使用的表格形式以外的数据的机制。

NoSQL数据库是无模式的,一致的,支持轻松的复制,具有简单的API,可以处理大量的数据。

NoSQL数据库的主要目标是:

  • 简约设计
  • 很好的水平扩展能力
  • 更好地控制可用性

NoSQL数据库比RDBMS更快,因为它与关系数据库相比使用不同的数据结构。 NoSQL数据库可以存储结构化和非结构化数据,如音频文件,视频文件,文档等。

NoSQL数据库可以根据其数据存储性质分为三种类型:

  • 键-值存储
  • 列存储
  • 文件存储

84091acb987505225c72fbda3e528e8a.jpg

键-值存储

这些数据库将数据存储在键值对中。 这些数据库不具有任何模式,每个数据值都包含索引的键和该键的值。

键-值存储数据库的一些流行产品有:Cassandra,DynamoDB,BerkeleyDB,Riak等。

列存储

这些数据库用于在单元格中存储数据。 这些单元格分组在数据列中,这些列进一步分组到列族中。这些列族可以包含任意数量的列。

一些常见的列存储数据库是:BigTable,HBase和HyperTable等。

文件存储

这些文件存储数据库遵循键值存储的基本思想,“文档”中包含复杂数据,每个文档都分配有唯一的键,用于检索文档。

这些数据库用于存储,检索和管理面向文档的信息,也称为半结构化数据。

一些常见的文件存储数据库是:CouchDBMongoDb等。

CouchDB是什么?

CouchDB是一个开源的NoSQL数据库,专注于易用性。 它由Apache开发,完全兼容web。 CouchDB使用JSON来存储数据,使用JavaScript作为查询语言来转换文档,使用MapReduce和HTTP作为API。

CouchDB是2005年发布的多主应用程序,在2008年成为一个apache项目。


本站所有代码下载:请扫描本页面底部(右侧)二维码并关注微信公众号,回复:"代码下载" 获取。

下一篇:为什么使用CouchDB?

为什么使用CouchDB? - CouchDB教程™

Apache CouchDB是最新的数据库之一。 CouchDB具有无模式的文档模型,更适合常见应用。可支持非常大数据量查询。

使用CouchDB的主要原因是什么?

  • CouchDB易于使用。 有一个单词可以描述CouchDB - “Relax”。 它也是组成CouchDB官方标志一个单词。

“Apache CouchDB已经开始了,现在是放松时间。”

CouchDB Logo

  • CouchDB具有基于HTTP的REST API,使数据库的通信非常简单。
  • CouchDB具有易于理解和使用的HTTP资源和方法(GET,PUT,DELETE)的简单结构。
  • 在CouchDB中,数据存储在基于灵活文档的结构中,因此不必担心数据的结构。
  • CouchDB为用户提供了强大的数据映射,可以对信息进行查询,组合和过滤。
  • CouchDB提供易于使用的复制功能,使用复制功能来共享和同步数据库和计算机之间的数据。

CouchDB数据模型

  • 数据库是CouchDB中最外层的数据结构/容器。
  • 每个数据库都是独立文件的集合。
  • 每个文档负责维护自己的数据和自包含的模式。
  • 文档元数据包含修订信息,这样可以合并数据库断开连接时存在的差异数据信息。
  • CouchDB实现多版本并发控制,以避免在写入期间锁定数据库字段。

CouchDB架构:

1bb9053899331326e865c219a410c105.jpg


本站所有代码下载:请扫描本页面底部(右侧)二维码并关注微信公众号,回复:"代码下载" 获取。

上一篇:CouchDB是什么?下一篇:CouchDB与MongoDB比较

CouchDB与MongoDB比较 - CouchDB教程™

CouchDB与MongoDB在架构和用途上,有很多相似的地方,详细的对比如下表中所示 -

CouchDB vs. MongoDB

特征比较

CouchDB

MongoDB

数据模型

它遵循面向文档的模型,数据以JSON格式呈现。

它遵循面向文档的模型,但数据以BSON格式呈现。

接口

CouchDB使用基于HTTP/REST的接口。它非常直观,设计非常好。

MongoDB在TCP/IP上使用二进制协议和自定义协议。

对象存储

在CouchDB中,数据库包含文档。

在MongoDB中,数据库包含集合,而集合包含文档。

查询方法

CouchDB遵循Map/Reduce查询方法(JavaScript+其他)

MongoDB遵循Map/Reduce(JavaScript)创建集合+基于对象的查询语言。

复制

CouchDB支持使用自定义冲突解析功能的主-主复制。

MongoDB支持主从复制。

并发

它遵循MVCC(多版本并发控制)

就地更新

偏向

CouchDB优先考虑可用性

MongoDB优先考虑一致性

性能一致性

在CouchDB中比MongoDB更安全

在MongoDB中数据库包含集合,而集合包含文档。

一致性

CouchDB最终是一致的。

MongoDB也是一致的。

编写语言

使用Erlang语言编写

使用C++语言编写


本站所有代码下载:请扫描本页面底部(右侧)二维码并关注微信公众号,回复:"代码下载" 获取。

上一篇:为什么使用CouchDB?下一篇:CouchDB的特点

CouchDB的特点 - CouchDB教程™

CouchDB的特点

以下是CouchDB最有吸引力的功能列表:

文件存储:CouchDB是一个NoSQL数据库,可以跟踪文档存储。 文档是每个字段唯一命名的数据的主要单位,并且包含各种数据类型的值,例如:文本,数字,布尔值,列表等。
文档对文本大小或元素数量没有设置限制。

基于浏览器的GUI:CouchDB提供了一个接口Futon,便于使用基于浏览器的GUI来处理数据,权限和配置。

复制:CouchDB提供了最简单的复制形式。 其他数据库没有是如此简单的复制。

ACID属性:CouchDB文件布局遵循ACID属性的所有功能。 数据输入到数据盘后,不会被覆盖。 文档更新(添加,编辑,删除)遵循原子性,即完全保存。 数据库不会有任何部分保存或编辑的文档。 几乎所有这些更新都是序列化的,任何数量的客户端都可以读取文档,而无需等待,从而不会出现中断问题。

JSONP免费:如果更新配置为:allow_jsonp = true,那么数据库可将支持GET请求访问的跨域。

身份验证和会话支持:CouchDB可以通过会话cookie(如Web应用程序)来保持身份验证。

安全性:CouchDB还提供数据库级安全性。 每个数据库的权限分为读取者和管理员。 读取者可以读写数据库。

验证:可以通过结合身份验证将插入的数据验证为数据库,以确保文档的创建者是否就是登录者的文档。

Map/Reduce列表并显示:MongoDB和CouchDB普及背后的主要原因是有Map/Reduce系统支持。


本站所有代码下载:请扫描本页面底部(右侧)二维码并关注微信公众号,回复:"代码下载" 获取。

上一篇:CouchDB与MongoDB比较下一篇:CouchDB安装配置

CouchDB安装配置 - CouchDB教程™

在这篇文章中,我们主要介绍和演示如何下载和安装 CouchDB , 由于时间和篇幅的限制,这里只介绍在 Window 10 64位和Ubuntu的CouchDB安装配置。

1. 在Windows上安装CouchDB

下载CouchDB

点击右上方的下载(Download)链接,就会跳到下载页面,CouchDB有各种格式的文件可供下载,这里选择 Windows (x64) 这个版本,如下图所示 -

2b6be61d750f3fc989789441bd2b7c48.jpg

完成安装后,打开浏览器并访问以下链接:http://127.0.0.1:5984/

如果没有问题,应该会看到以下输出:

可以使用以下网址与CouchDB Web界面进行交互:

http://127.0.0.1:5984/_utils

现在转到验证选项卡并验证安装情况:

验证后,您将收到一条验证信息。

现在转到安装程序选项卡,看到两个选项:配置集群(Configure cluster)和配置单节点(configure single node)。

群集用于多个服务器和大型设置。 对于一个简单的数据库应用程序,则选择“配置单节点(configure single node)”。

当您单击“配置单节点(configure single node)”时,必须填写一些凭据。

可以通过单击“管理(Admin)”选项卡来更改密码或创建其他管理员。

2. 在Linux系统上安装CouchDB

一些Linux系统在内部有提供CouchDB数据库。 例如,要在Ubuntu和Debian上安装CouchDB,请使用以下说明:

sudo apt install couchdb

执行结果如下 -

yiibai@ubuntu:~$ sudo apt install couchdb
[sudo] password for yiibai:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
couchdb-bin couchdb-common erlang-asn1 erlang-base-hipe erlang-crypto
erlang-eunit erlang-inets erlang-mnesia erlang-os-mon erlang-public-key
erlang-runtime-tools erlang-snmp erlang-ssl erlang-syntax-tools erlang-tools
erlang-webtool erlang-xmerl libmozjs185-1.0 libsctp1 lksctp-tools
Suggested packages:
erlang erlang-manpages erlang-doc erlang-edoc erlang-gs erlang-observer
The following NEW packages will be installed:
couchdb couchdb-bin couchdb-common erlang-asn1 erlang-base-hipe
erlang-crypto erlang-eunit erlang-inets erlang-mnesia erlang-os-mon
erlang-public-key erlang-runtime-tools erlang-snmp erlang-ssl
erlang-syntax-tools erlang-tools erlang-webtool erlang-xmerl libmozjs185-1.0
libsctp1 lksctp-tools
0 upgraded, 21 newly installed, 0 to remove and 450 not upgraded.
Need to get 19.7 MB of archives.
After this operation, 43.2 MB of additional disk space will be used.
Do you want to continue? [Y/n] y

安装完成后,couchdb自动启动,现在打开浏览器并测试安装结果 -

036e43ce8c7b8f8bc53f0cc4f82e872d.jpg

注:可以看到上面默认安装的是 couchdb 1.5.0 版本,如果有兴趣可以安装最新版本,参考接下来的步骤。

安装最新版本(apache-couchdb-1.6.0) -

$ sudo apt-get --no-install-recommends -y install \
build-essential pkg-config erlang \
libicu-dev libmozjs185-dev libcurl4-openssl-dev

$ sudo apt-get update

$ sudo apt-get install software-properties-common -y

添加PPA,以从相应的存储库获取最新的CouchDB版本:

$ sudo add-apt-repository ppa:couchdb/stable -y

现在已经添加了一个新的PPA,开始更新系统,使其具有最新的包信息:

$ sudo apt-get update

如果之前在此服务器上安装了CouchDB,请先删除现有版本:

$ sudo apt-get remove couchdb couchdb-bin couchdb-common -yf

现在安装CouchDB:

$ sudo apt-get install couchdb -y

通过上面步骤,couchdb最新稳定版本就安装好了。默认情况下,CouchDB在localhost上使用端口5984运行,可以通过从命令行运行curl来检索此基本信息(验证安装结果):

yiibai@ubuntu:~$ curl localhost:5984
{"couchdb":"Welcome","uuid":"22d9e91e925fecdb5a3698e26a7f6815","version":"1.6.1","vendor":{"name":"Ubuntu","version":"14.04"}}
yiibai@ubuntu:~$

CouchDB是一个Web界面,可以在Web浏览器上进行验证。打开以下主页网址:

http://localhost:5984/

将看到以下输出:

bf631493d765e853f03a4f021304a27e.jpg

如果Linux系统没有CouchDB,则安装CouchDB及其以下依赖项:

  • Erlang OTP
  • ICU
  • OpenSSL
  • Mozilla SpiderMonkey
  • GNU Make
  • GNU Compiler Collection
  • libcurl
  • help2man
  • Python for docs
  • Python Sphinx

要安装上述依赖项,请使用以下命令:

$sudo yum install autoconf
$sudo yum install autoconf-archive
$sudo yum install automake
$sudo yum install curl-devel
$sudo yum install erlang-asn1
$sudo yum install erlang-erts
$sudo yum install erlang-eunit
$sudo yum install erlang-os_mon
$sudo yum install erlang-xmerl
$sudo yum install help2man
$sudo yum install js-devel
$sudo yum install libicu-devel
$sudo yum install libtool
$sudo yum install perl-Test-Harness

然后配置并启动CouchDB。使用以下URL验证输出:

http://127.0.0.1:5984/


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论