【问题标题】:curl: (7) Failed connect to 127.0.0.1:5984; Connection refusedcurl: (7) 连接到 127.0.0.1:5984 失败;连接被拒绝
【发布时间】:2013-07-26 20:43:19
【问题描述】:

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

$ 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目录,然后在Terminal中执行如下操作

$ 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 ]

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

谢谢

【问题讨论】:

  • 嗨。您是否找到了答案/解决方案?你还记得吗? :) 您可以发布它并接受您的答案,以便其他人可以找到它。

标签: ubuntu curl couchdb


【解决方案1】:

您需要在/etc/couchdb/local.ini 中的local.ini 文件中取消注释端口和bind_address

对于 Ubuntu 20:- /opt/couchdb/etc/local.ini

改变:

;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"

你可以走了。

【讨论】:

  • 我做了这些步骤,但我仍然得到 --> curl: (7) 无法连接到 localhost 端口 5984:连接被拒绝
【解决方案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”,并且无法返回到 couchdb 未侦听的 IPV6 版本的 localhost。

当我将请求更改为“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"}}

您可能会遇到类似的问题,但即使您没有遇到,在“curl”命令中添加“-v”选项可能会帮助您解决问题。

【讨论】:

  • 谢谢。这让我很满意。
【解决方案3】:

只是对使用 Mac 的其他人的说明,如果您重命名您的用户目录,CouchDB 确实喜欢它,这是我最近不得不做的,Couch 的所有东西都坏了。

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

【讨论】:

    【解决方案4】:

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

    你只需要跑

    sudo /etc/init.d/couchdb start

    【讨论】:

      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

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

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

        【讨论】:

          猜你喜欢
          • 2019-08-09
          • 2021-01-27
          • 2017-05-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-08-22
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多