【问题标题】:How to connect to db with mongo shell using MONGOLAB_URI?如何使用 MONGOLAB_URI 通过 mongo shell 连接到 db?
【发布时间】:2015-12-17 08:44:18
【问题描述】:

在heroku 上,连接数据库所需的一切都存储在MONGOLAB_URI 变量中。但它主要由 mongo 驱动程序使用,而不是人类。

$ heroku config
=== app Config Vars
LANG:                     en_US.UTF-8
MONGOLAB_URI:             mongodb://heroku_app123456:2fsf445D@ds039880.mongolab.com:39880/heroku_app123456

是否有一些快速的方法可以仅使用 mongo shell 连接到数据库?

【问题讨论】:

    标签: mongodb heroku


    【解决方案1】:

    我不确定有没有办法从 mongo shell 执行此操作,但您可以从终端运行 mongo [mongodb uri]

    【讨论】:

    • 这不适用于2.63.0.5。但是,是的,现在最好的答案:)
    【解决方案2】:

    我在man mongo 中没有看到任何选项。

    所以一种(多种)可能的方式是这种 AWK 单线:

    gawk '/MONGOLAB_URI/ { print gensub( /mongodb:\/\/([[:print:]]+):([[:print:]]+)@(.*)/, "-u \\1 -p \\2  \\3","g",$2)}'
    

    用法:

    $ mongo $(heroku config | gawk '/MONGOLAB_URI/ { print gensub( /mongodb:\/\/([[:print:]]+):([[:print:]]+)@(.*)/, "-u \\1 -p \\2  \\3","g",$2)}')
    MongoDB shell version: 3.0.5
    connecting to: ds039880.mongolab.com:39880/heroku_app123456
    rs-ds039880:PRIMARY> 
    

    它不计入副本集等,只是简单的数据库设置。对于更棘手的 URI,请使用一些驱动程序。


    另一种可能的方法是 open 管理 mongolab 插件,应该有 prepared "connection" 字符串。无法确认是否包含密码/用户名对。

    $ heroku addons:open mongolab
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-30
      相关资源
      最近更新 更多