我们必须服务器。我在其中一台服务器上安装了MongoDB(UBUNTU - Digital Ocean VPS)。
当我运行脚本以使用localhost从同一服务器检索数据时,我可以完美地做到这一点。
import pymongo
//SERVER = 'mongodb://localhost:27017/myproject'
SERVER = 'mongodb://root:password@x.x.x.x:27017/myproject' where x.x.x.x is the address of my server
connection=pymongo.MongoClient(SERVER)
db = connection.myproject
print list(db.coll.find())
问题是我无法连接到此数据库。请注意,我可以使用服务器内的localhost来ssh并运行脚本;但不是服务器外的情况。
我是否需要进行一些配置:
答案 0 :(得分:0)
您必须允许远程访问
vi /etc/mongod.conf
bind_ip = 127.0.0.1
您必须添加其他服务器的IP。例如:
bind_ip = 127.0.0.1,192.168.0.100
注释听所有界面
Nota:逗号分开
我希望能帮助
答案 1 :(得分:0)
出于开发目的,您可以打开像
这样的ssh隧道ssh <UBUNTU - Digital Ocean VPS> -L27018:localhost:27017
然后以
连接到远程数据库SERVER = 'mongodb://root:password@localhost:27018/myproject'
ssh连接仍然打开。您可以使用任何自由端口而不是27018。
否则,您需要重新配置mongodb以侦听所有接口。在mongodb config中注释掉bindIp
行并重新启动服务器。这将使数据库可公开访问,因此请确保使用强密码并且不允许匿名访问。
最后,如果您使用的是VPN,则需要在mongodb配置中取消注释bindIp
行,并在那里添加VPN接口,例如:
bindIp = 127.0.0.1,10.0.1.12
其中10.0.1.12应替换为ubuntu框的vpn接口。您可以使用ifconfig
找到确切的值。重要提示:昏迷周围没有空间。