2017-08-25 117 views
1

我遇到了问题,本地连接到我的vps上的mongodb。 VPS已经安装了Ubuntu 14.这些是香港专业教育学院所采取的步骤:mongodb本地连接到vps数据库

  1. 注释规则在/etc/mongod.conf
    • #bind_ip = 127.0.0.1
    • 重启蒙戈过程service mongod restart
  2. 加入规则来防火墙,以便它接受连接:
    • MongoDB中
  3. 的用户:

    use admin 
    db.createUser({ 
        user: 'myuser', 
        pwd: 'mypassword', 
        roles: ['userAdminAnyDatabase', 'dbAdminAnyDatabase'] 
    }) 
    

我读到这说明,如果您创建上述方法的用户将是管理员用户的所有数据库的文章,但在现实中,我只能成功连接到admin db。如果我尝试连接到其他mydb数据库,则会引发错误Authorization fails

此连接的工作原理:

mongo.connect('mongodb://myuser:[email protected]:27017/admin',function(err, db) { 

这一个犯规:

mongo.connect('mongodb://myuser:[email protected]:27017/mydb',function(err, db) { 

我如何添加用户MONGO所以它将允许带mydb连接?创建与它按预期工作上面的语法用户后

use mydb 
db.createUser({ user: 'myuser', pwd: 'mypassword', roles: ['readWrite'] }) 

+1

因为'* AdminAnyDataBase'角色确实允许“管理”功能(例如授予权限),但实际上并没有其他任何东西,所以您可能实际上需要再次阅读“角色”页面。所以你的“应用程序”真的想要一个“readWrite”或类似的东西,并且它也想知道你准许哪个数据库命名空间。当前应用的角色不使用数据库名称空间,因此实际上只应用对管理帐户信息的“admin”数据库的访问权限。所以如果你想要不同的访问,那么你实际上需要设置它。目前你还没有。 –

+0

谢谢你的提示;) – Mevia

回答

0

确定我只是研究和测试了一些解决方案,这个解决了这个问题。