2013-07-26 6 views
4

Я новичок в CouchDB и хочу работать над проектом с использованием CouchDB. Я установил сервер на своем ноутбуке (работает Ubuntu 13.04), следуя инструкциям, приведенным в справочнике Beginning CouchDB, но с небольшим изменением в версии CouchDB (объяснение в справочнике имело более старую версию). Я загрузил последнюю версию Source версии CouchDB и выполнил остальные действия, которые были сказаны в этой книге с помощью Terminal. Я могу успешно запустить сервер от терминала, но когда я используюcurl: (7) Не удалось подключиться к 127.0.0.1:5984; Соединение отклонено

$ 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",} 

Я настроил сервер в следующим образом:

Сперва скачан Источник файл с официального сайта, извлечена же и скопировать его в мой /дома каталог, а затем выполняются следующие действия в терминале

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

Я даже попытался отключить брандмауэр системы, но тогда результаты будут такими же. Если кто-то из вас испытал то же самое, поделитесь своим опытом в решении этой проблемы или дайте мне знать альтернативный способ настройки.

Спасибо

+0

Hi. Вы нашли ответ/решение? И ты все еще помнишь это? :) Вы можете опубликовать его и принять свой ответ, чтобы другие могли его найти. – Seer

ответ

2

У меня была такая же проблема, и я побежал «завиток -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 

По какой-то причине «свернуться» не может разрешить имя «localhost» и не удалось вернуться к версии локального хоста IPV6, которую не слушал couchdb.

Когда я изменил запрос на «свернуться 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» может помочь вам устранить ее.

+0

Спасибо. Это меня разобрало. – Gareth

1

Это может быть, что вы попав в открытый лимит файлов в Ubuntu (1024 по умолчанию) и поэтому TCP соединения не могут быть созданы. Я далеко от эксперта по Ubuntu, но об этом сообщалось как о предыдущей причине таких ошибок. См. askubuntu.com для получения инструкций о том, как увеличить этот предел. В разделе CouchDB Wiki также есть раздел «Ограничения ресурсов», который может оказаться полезным.

0

DNS ищет правильный IP-адрес из файлов/etc/resolv.conf и/etc/hosts

Вам необходимо удалить IP-адрес локального хоста из файла/etc/hosts, где DNS попытается решить из 127.0.0.1, который неизвестен внешнему миру.

2

Раскомментируйте порт и bind_address в файле local.ini в /etc/couchdb/local.ini

изменение:

;port = 5984 
;bind_address = 127.0.0.1 

к:

port = 5984 
bind_address = 0.0.0.0 

, а затем перезапустить CouchDB

curl -X POST http://admin:[email protected]:5984/_restart -H"Content-Type: application/json" 

, и вам хорошо идти.

3

Просто примечание для других пользователей с помощью Mac, CouchDB делает не нравится, если вы переименуете свой каталог пользователя, который я должен был сделать недавно, и все, что Couch сломал.

Чтобы это исправить, необходимо сначала найти (~/Library/Application Support/CouchDB2/etc/couchdb/local.ini) и редактировать local.ini файл, чтобы заменить все жестко закодированные абсолютные пути с новым каталогом пользователя, то вам необходимо воссоздать ~/Library/Preferences/couchdb2-local.ini символическую ссылку снова укажите этот файл.

Смежные вопросы