美文网首页
如何连接到远程MongoDB服务器

如何连接到远程MongoDB服务器

作者: songyu0 | 来源:发表于2019-01-21 11:03 被阅读22次

如何连接到远程MongoDB服务器

我在Amazon EC2上的Ubuntu服务器上运行MongoDB。由于没有简单的一体化教程解释如何为Mongo设置用户身份验证,以便您可以从笔记本电脑读取和写入MongoDB服务器,我决定写一个。

如果尚未安装MongoDB,首先按照https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/中的步骤操作。

1.设置您的用户

首先ssh进入您的服务器并输入mongo shell mongo。对于此示例,我将设置一个名为的用户,ian并授予该用户对cool_db数据库的读写权限。

use cool_db

db.createUser({
    user: 'ian',
    pwd: 'secretPassword',
    roles: [{ role: 'readWrite', db:'cool_db'}]
})

2.启用auth并打开MongoDB访问所有IP

编辑MongoDB配置文件。在Ubuntu上:

sudo vim /etc/mongod.conf

  • 查找该net行并注释掉它下面的bindIp行,这是当前限制MongoDB连接到localhost

警告:如果没有启用授权,请不要注释掉该bindIp行。否则,您将打开整个互联网,以便对MongoDB服务器上的所有mongo数据库拥有完全的管理员权限!

# network interfaces
net:
  port: 27017
#  bindIp: 127.0.0.1  <- comment out this line

  • 向下滚动到该#security:部分并添加以下行。确保取消注释该行。security:
security:
  authorization: 'enabled'

3.在EC2实例上打开端口27017

  • 转到您的EC2仪表板:https//console.aws.amazon.com/ec2/
  • 转到并向下Instances滚动以查看实例的安全组。例如,它会是这样的launch-wizard-4
  • 转到- > - > 选项卡 - > 按钮。Netword & Security``Security Groups``Inbound``Edit
  • 在端口27017上创建一个新的自定义TCP,源:Anywhere,0.0.0.0 / 0

4.最后一步:重启mongo守护进程(mongod)

sudo service mongod restart

确保您仍然可以mongo在ssh进入框中时登录。

如果出现任何问题,请查看日志:( 注意:非Ubuntu机器会将日志保存在另一个目录中......)tail -f /var/log/mongodb/mongod.log


使用mongo笔记本电脑上的shell 登录

您可以关闭ssh并返回本地控制台。要进入我们刚设置的远程Mongo数据库,可以使用mongo shell:

mongo -u ian -p secretPassword 123.45.67.89/cool_db

您的服务器的公共IP地址在哪里。123.45.67.89

现在,您可以cool_db从笔记本电脑中读取和写入数据库而无需ssh

使用pymongo与您的远程服务器的MongoDB

import pymongo

client = pymongo.MongoClient("mongodb://ian:secretPassword@123.45.67.89/cool_db") # defaults to port 27017

db = client.cool_db

# print the number of documents in a collection
print db.cool_collection.count()

就是这样!

相关文章

网友评论

      本文标题:如何连接到远程MongoDB服务器

      本文链接:https://www.haomeiwen.com/subject/qgoqjqtx.html