我刚刚在Windows机器上安装了CouchDB并运行良好。
现在,我想从同一网络中的另一台机器进行访问。
我已local.ini
bind_address
从127.0.0.1
更改为0.0.0.0
:
[chttpd]
bind_address = 0.0.0.0
port = 5984
我重新启动了Apache CouchDB
服务,但它不起作用。当我尝试从另一台计算机访问时,例如使用curl -X GET http://192.168.25.49:5984
,我没有得到任何回复。
当我在本地机器(运行CouchDB的地方)中运行相同的命令时,我得到:
curl -X GET http://192.168.25.49:5984
{"couchdb":"Welcome","version":"2.1.1","features":["scheduler"],"vendor":{"name":"The Apache Software Foundation"}}
我的期望是我从同一网络中的另一台机器运行相同的结果。
答案 0 :(得分:1)
感谢@Flimzy,问题是Windows防火墙中没有规则。
我刚刚按照this link上的说明创建了允许外部访问的规则:
控制面板> Windows防火墙
高级设置
入境规则>新规则
端口>然后选择“TCP”并输入“5984”作为本地端口
单击“下一步”,然后允许连接
再次单击“下一步”,确保勾选“域”,“私人”和“公共”
为防火墙规则命名,然后保存。
之后,我从另一台机器上访问了CouchDb并得到了想要的答案:
curl -X GET http://192.168.25.49:5984
{"couchdb":"Welcome","version":"2.1.1","features":["scheduler"],"vendor":{"name":"The Apache Software Foundation"}}`
答案 1 :(得分:0)
就我而言,仅允许5984端口通过Windows防火墙是不够的。我在Windows 10计算机上使用Apache CouchDB 2.3.1。我必须执行以下步骤:
.profile {
position: relative;
top: 20px;
left: 100px;
}
的{{1}}和bind_address
部分中将127.0.0.1
从0.0.0.0
更改为[chttpd]
。在此步骤之后,停止并启动CouchDB。[httpd]
完全与@Ricardo在其答案中提到的一样。我仍然无法从同一网络中的另一台计算机访问CouchDB。CouchDB/etc/local.ini
,然后单击左侧菜单中的5984
。瞧!未检查erl。我检查了erl左侧的对勾,并确保同时检查了Control Panel > System and Security > Windows Defender Firewall
和Allow an app or feature through Windows Defender Firewall
复选框是否存在erl。
完成上述操作后,便可以从同一网络中的另一台计算机访问CouchDB。