curl:(7)连接到127.0.0.1:5984失败;拒绝连接

时间:2013-07-26 20:43:20

标签: ubuntu curl couchdb

我是CouchDB的初学者,想要使用CouchDB开展项目。我已按照 Beginning CouchDB 手册中的说明在我的笔记本电脑(运行Ubuntu 13.04)中设置了服务器,但CouchDB的版本几乎没有变化(手册中的说明有旧版本)。我下载了最新的 Source 版本的CouchDB,并使用终端执行了该书中讲述的其余操作。我能够从终端成功启动服务器但是当我使用

$ curl http://127.0.0.1:5984/

我收到了这个

curl: (7) Failed connect to 127.0.0.1:5984; Connection refused

作为输出而不是此

{"couchdb" : "Welcome", "version" : "1.3.1",}

我按以下方式配置服务器:

我首先从官方网站下载 Source 文件,将其解压缩并复制到我的 / home 目录,然后在终端中执行以下操作

$ cd apache-couchdb-1.3.1/

$ ./configure

$ make

$ sudo make install

$ sudo mkdir -p /usr/local/var/lib/couchdb

$ sudo mkdir -p /usr/local/var/log/couchdb

$ sudo mkdir -p /usr/local/var/run

$ sudo chown -R couchdb /usr/local/var/lib/couchdb

$ sudo chown -R couchdb /usr/local/var/log/couchdb

$ sudo chown -R couchdb /usr/local/var/run

$ sudo cp /usr/local/etc/init.d/couchdb /etc/init.d

$ sudo update-rc.d couchdb defaults

启动和查看工作服务器

$ sudo /etc/init.d/couchdb start

$ curl http://127.0.0.1:5984

当我输入此命令启动服务器 sudo /etc/init.d/couchdb start 时,我会在终端收到回复,如下所示:

* Starting database server couchdb                                      [ OK ]

我甚至尝试关闭系统的防火墙,但结果是一样的。如果您有任何相同的经历,请分享您解决此问题的经验,或让我知道配置相同的任何替代方法。

谢谢

6 个答案:

答案 0 :(得分:5)

您需要在local.ini

中的/etc/couchdb/local.ini文件中取消注释port和bind_address

变化:

;port = 5984
;bind_address = 127.0.0.1

为:

port = 5984
bind_address = 0.0.0.0

然后重启CouchDB

curl -X POST http://admin:password@localhost:5984/_restart -H"Content-Type: application/json"

你很高兴。

答案 1 :(得分:3)

只是给使用Mac的其他人留言,如果你重命名你的用户目录,那么CouchDB就不会像那样,这是我最近必须做的事情以及Couch所做的一切。

要解决此问题,您需要首先找到(~/Library/Application Support/CouchDB2/etc/couchdb/local.ini)并编辑 local.ini 文件,将所有硬编码的绝对路径替换为新的用户目录,然后需要重新创建~/Library/Preferences/couchdb2-local.ini符号链接以再次指向该文件。

答案 2 :(得分:2)

我遇到了同样的问题,我跑了一个" curl -v localhost:5984"并在我的Mac上获得以下输出:

curl -v localhost:5948
* Rebuilt URL to: localhost:5948/
* Hostname was NOT found in DNS cache
*   Trying ::1...
* connect to ::1 port 5948 failed: Connection refused
*   Trying fe80::1...
* connect to fe80::1 port 5948 failed: Connection refused
* Failed to connect to localhost port 5948: Connection refused
* Closing connection 0
curl: (7) Failed to connect to localhost port 5948: Connection refused

出于某种原因" curl"无法解析名称" localhost"并且失败了回到localdb的IPV6版本,这个版本没有找到。

当我将请求更改为" curl 127.0.0.1:5984"请求工作,并回来:

curl 127.0.0.1:5984
{"couchdb":"Welcome","uuid":"7483189ec0bfb8df387a055674ea05f2","version":"1.6.1","vendor":{"version":"1.6.1-1","name":"Homebrew"}}

您可能遇到类似的问题,但即使您不是,也要添加" -v"选择你的" curl"命令可能会帮助您排除故障。

答案 3 :(得分:1)

可能是您在Ubuntu中遇到了打开文件限制(默认为1024),因此无法创建TCP连接。我远不是Ubuntu的专家,但据报道这是此类错误的先前原因。有关如何增加此限制的说明,请参阅askubuntu.com。 <{3}}中还有一个资源限制部分,可能会有所帮助。

答案 4 :(得分:1)

我遇到了同样的错误 从“https://linuxize.com/post/how-to-install-couchdb-on-ubuntu-20-04/”安装后

你只需要跑

sudo /etc/init.d/couchdb start

答案 5 :(得分:0)

DNS从/etc/resolv.conf和/ etc / hosts文件中查找正确的IP地址

您需要从/ etc / hosts文件中删除本地主机IP地址,其中DNS将尝试从外部世界未知的127.0.0.1解析。