Mise à jour: je l'ai fait fonctionner maintenant. La réponse de Jim Zajkowski m'a aidé à détecter que mes appels de redémarrage /etc/init.d/couchdb ne redémarraient pas réellement l'instance. Après avoir tué manuellement les processus CouchDB et démarré une nouvelle instance, il a détecté la modification BindAddress requise.
J'ai installé CouchDB via
aptitude install couchdb
Depuis mon serveur, je peux me connecter via
telnet localhost 5984
et exécutez les commandes RESTful. Lorsque j'essaie d'accéder au serveur à partir d'une autre machine de notre réseau ou d'une machine externe à notre réseau, j'obtiens une erreur La connexion a été réinitialisée . J'ai configuré la redirection de port sur le routeur, et le serveur est par ailleurs accessible via Apache, Tomcat, SSH, etc.
Je suis nouveau sur Linux / Ubuntu, donc je ne savais pas s'il y avait un pare-feu par défaut bloquant la connexion, alors j'ai couru:
iptables -A INPUT -p tcp --dport 5984 -j ACCEPT
mais cela n'a pas aidé.
Voici le vidage de l'exécution d' iptables -L -n -v
Chain INPUT (policy ACCEPT 2121K packets, 1319M bytes)
pkts bytes target prot opt in out source destination
70 3864 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:5984
9 1647 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080
0 0 ACCEPT tcp -- * * 0.0.0.0/0 0.0.0.0/0 tcp dpt:8080
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
Chain OUTPUT (policy ACCEPT 1708K packets, 1136M bytes)
pkts bytes target prot opt in out source destination
Je suppose que les octets affichés comme transférés pour 5984 sont dus à ma connexion localhost.
Voici le vidage de l'exécution de netstat -an | grep 5984
tcp 0 0 127.0.0.1:5984 0.0.0.0:* LISTEN
J'ai configuré couch.ini pour avoir "BindAddress = 0.0.0.0" et redémarré, il devrait donc être à l'écoute sur toutes les interfaces. Lorsque j'exécute "sudo /etc/init.d/couchdb stop", puis j'exécute netstat, cependant, je vois toujours l'entrée ci-dessus. Il semble que CouchDB ne s'arrête pas du tout. Cela peut expliquer mon problème, car cela signifie que cela peut signifier que CouchDB n'a jamais réellement redémarré et n'a jamais pris en compte la modification BindAddress.
J'ai tué manuellement le processus CouchDB et l'ai redémarré. Maintenant, netstat montre:
tcp 0 0 127.0.0.1:5984 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:5984 127.0.0.1:35366 TIME_WAIT
Je ne parviens toujours pas à me connecter, même à partir d'une autre machine sur le LAN.
la source
Réponses:
Que
netstat -an | grep 5984
dit-on? Dit-il127.0.0.1:5984
ou*:5984
? Si c'est le cas127.0.0.1
, alors couchdb doit être configuré pour écouter toutes les interfaces.la source
127.0.0.1:5984/_utils/config.html
(ou à l'URL équivalente pour votre configuration) et double-cliquez sur la valeur de l'option, modifiez, puis cliquez sur la coche verte.Vous devez changer l'adresse bind_add dans /etc/couchdb/default.ini. Redémarrez ensuite le service et réessayez.
la source
J'ai remarqué que pour que cela fonctionne, vous devez tuer manuellement le processus erlang en cours d'exécution pour une raison quelconque.
ps ax | grep beam
devrait révéler le processus erlang, vous devriez obtenir quelque chose le long des lignes0:00 /usr/lib/erlang/erts
quelque part dans la sortie. Si vous tuez ce processus, puis exécutez/etc/init.d/couchdb restart
le nouveau fichier de configuration sera chargé.la source
Sur PC / Mac personnel, exécutez cette commande:
prochaine ouverture dans votre navigateur localhost: 5984 / _utils ... Cela fonctionne pour moi
la source
Documents de configuration :
Si vous le modifiez à partir du panneau de configuration Futon, vous n'avez rien d'autre à faire (redémarrer la base de données, etc.):
Avant de changer l'adresse bind_address par défaut:
Après être passé à 0.0.0.0:
Remarquez les non-gourous: les ordinateurs qui ne peuvent pas accéder au vôtre (normalement, tout ce qui se trouve en dehors de votre réseau local) ne pourront toujours pas accéder à votre ordinateur (CouchDB ou autre).
la source
J'ai rencontré cela, et mon problème a fini par être qu'il y avait, apparemment, couchdb déjà installé dans mon installation d'Ubuntu. J'avais édité les fichiers de configuration sous / etc / couchdb, mais celui qui s'exécutait était en fait en train de tirer config de / usr / local / etc / couchdb.
Le conseil était que les configurations dans / etc / couchdb mentionnaient le canapé 0.10, mais je venais d'installer 1.0.1.
la source
iptables -L -n -v
vous montrera vos règles de pare-feu actuelles. Voyez s'il y en a un qui supprime ces paquets avant qu'il n'atteigne votre règle.la source
lsof -i -n -P | grep LISTEN
et de publier cela? Vous recherchez le processus CouchDB et ce à quoi il est lié. Si c'est le cas127.0.0.1:5984
, vous devez configurer CouchDB pour écouter les connexions externes. Si c'est le cas*:5984
, eh bien, au moins CouchDB est configuré correctement :)lsof
sortie?