Базовая репликация CouchDB локально-удаленно - PullRequest
3 голосов
/ 19 декабря 2009

Я играю с CouchDB Replication и мне интересно, как скопировать локальную базу данных с именем «myDatabase» в удаленную базу данных на www.mySite.com, для которой требуется ssh-доступ, и переименовать ее в «myRemoteDatabase». Как мне это сделать?

Я могу войти на оба локальных и удаленных сервера и запустить:

curl -X GET <a href="http://localhost:5984/" rel="nofollow noreferrer">http://localhost:5984/</a>

... и он покажет мне результат, но когда я нахожусь на локальном компьютере и запускаю:

curl -X GET <a href="http://my.ip.address:5984/" rel="nofollow noreferrer">http://my.ip.address:5984/</a>

... или даже

curl -X GET <a href="http://USER:PASSWORD@my.ip.address:5984/" rel="nofollow noreferrer">http://USER:PASSWORD@my.ip.address:5984/</a>

Я получаю:

curl: (7) couldn't connect to host

Чего мне не хватает на этой картинке?

Ответы [ 2 ]

4 голосов
/ 19 декабря 2009

Учитывая предоставленные вами данные, это может быть только одно.

Вы настроили CouchDB для прослушивания интерфейса localhost, а не другого. Я не знаю, как настроен CouchDB, но это будет какой-то вариант привязки к 127.0.0.1 или (в мире IPv6) ::1. Многие конфигурации делают это по умолчанию, так как это довольно безопасно. Он не разрешит доступ любому хосту, кроме localhost.

Одна возможность, о которой я думал, состоит в том, что на двух машинах установлены брандмауэры, которые не позволяют подключаться из внешнего мира к порту 5984. Но почти нет брандмауэра, который защищает компьютер от доступа к себе. Они могут, но почти никогда не делают.

1 голос
/ 02 марта 2012
sudo vi /etc/couchdb/default.ini

В разделе [httpd] измените

bind_address = 127.0.0.1

на IP-адрес этого сервера, затем:

sudo service couchdb restart
...