如何在Heroku上为我的mlab配置DB更改我的MONGODB_URI?

时间:2016-06-18 18:26:00

标签: mongodb heroku connection-string mlab

假设我不小心让猫从袋子里出来并让我的MONGODB_URI公开在Heroku上由mLab配置的数据库 - 有没有办法重置/重新生成/更改我的连接字符串?

例如,我的连接字符串如下所示: mongodb://heroku_g20xzxs8:vc8k708rh1qqgr17luq7satqct@ds045622.mlab.com:41222/heroku_g20xzxs8

2 个答案:

答案 0 :(得分:5)

首先通过mongo CLI立即设置新密码:

登录:

$ mongo --port 27017 -u siteUserAdmin -p password --authenticationDatabase admin

更改密码:

$ db.changeUserPassword("yourusername", "S0m3NeWPaSW0RdPxmt1oOfL")

之后,您可以使用 db.removeUser(用户名) 删除用户名enterily并重新创建 db.createUser() 即可。最高为mongo 2.6 db.removeUser()

可以更新整个用户db.updateUser()

要部署新字符串,请执行heroku:

 $ heroku config:set MONGODB_URI=mongodb://dbuser:dbpass@host1:port1,host2:port2/dbname

如果您不想使用CLI /命​​令行方式,请完全删除用户并在mLabs上创建一个新用户 - '初始主屏幕'/'MongoDB部署'/用户/'名称 - 只读-X'。单击“X”删除并完成。添加新用户并在此之后部署新字符串。

答案 1 :(得分:1)

这里的关键是要意识到连接字符串是由什么组成的。在我使用单节点计划的情况下,我的连接字符串默认为此格式

mongodb://dbuser:dbpass@host:port/dbname

包含一些为数据库生成的用户和密码。如果您通过Heroku应用程序的仪表板进入mLab管理门户或使用Heroku CLI打开它:

heroku addons:open mongolab

您可以进入“用户”标签并创建新用户。使用新的用户名和密码,您可以update your heroku config variable

例如,在这种情况下,生成的用户名为heroku_g20xzxs8,密码为vc8k708rh1qqgr17luq7satqct。如果您创建新用户new_db_user和密码th1$PasswordR0x,则更新后的连接字符串以及MONGODB_URI配置变量的值将如下所示:

mongodb://new_db_user:th1$PasswordR0x@ds045622.mlab.com:41222/heroku_g20xzxs8

一旦您测试了更新的MONGODB_URI处于正常运行状态,请继续删除自动生成的用户 - 是的,不再有漏洞!