Dokku、RoR 和 Mongo DB:未授权未授权在 db 上执行命令
Dokku, RoR and Mongo DB: Unauthorized not authorized on db to execute command
几天来我一直在为这个问题苦苦挣扎,我可以使用 mongo shell.
进行身份验证
但是当我从浏览器访问我的应用程序时,出现上述错误。
Ruby rails 日志:
2016-07-05T04:29:34.415943099Z app[web.1]: MONGODB | xx.xx.xx.xx:4121
| [db].count | STARTED | {"count"=>"listings", "query"=>{}}
2016-07-05T04:29:34.418337913Z app[web.1]: MONGODB | xx.xx.xx.xx:4121
| [db].count | FAILED | not authorized on [db] to execute command {
count: "listings", query: {} } (13) | 0.0021065790000000004s
背景
托管在Digital Ocean,一键部署Dokku
独库版本:0.6.4
MongoDB:3.2.6
Ruby:2.2.4
Rails4.2.6
我已将用户(使用 DbOwner)添加到 MongoDB,同样添加到 mongoid.yml。
这里是mongoid.yml
production:
clients:
default:
database: sample
hosts:
- ip:4121
user: "user"
password: "password"
options:
read:
mode: :primary
max_pool_size: 5
我不知道这是否能解决您的问题,但一般的建议是,不要一键部署 dokku。启动一个 droplet 并手动安装 dokku,它也不需要太多的努力。
一键部署会产生不需要的配置错误。如果你想做一些 RnD 并尝试一下,建议采用这种方法。
dokku一键图片一直正常,没有问题
你安装了dokku的mongodb插件了吗?
https://github.com/jeffutter/dokku-mongodb-plugin
如果您已经安装了插件,则无需上传 yml 文件,您只需 运行 服务器中的 link 命令
mongodb:create <app>
mongodb:link <app> <database>
或者您可以在同一命令中创建和 link
mongodb:create <app> <database>
好的。我找到了解决这个问题的方法,我想我会关闭这个循环并节省一些 hours/days 试图解决这个问题的人。
基本上,来自数字海洋的一键式确实有效!
但是您需要在 mongoid.yml 中添加 URI 并删除数据库、用户和密码。
要生成 URI,请在您的 ssh 终端控制台中执行以下操作:
dokku mongo:info <<db name>>
使用屏幕上显示的内容更新 uri 值。
production:
clients:
default:
uri: <<URI>>
options:
read:
mode: :primary
max_pool_size: 1
几天来我一直在为这个问题苦苦挣扎,我可以使用 mongo shell.
进行身份验证但是当我从浏览器访问我的应用程序时,出现上述错误。
Ruby rails 日志:
2016-07-05T04:29:34.415943099Z app[web.1]: MONGODB | xx.xx.xx.xx:4121 | [db].count | STARTED | {"count"=>"listings", "query"=>{}}
2016-07-05T04:29:34.418337913Z app[web.1]: MONGODB | xx.xx.xx.xx:4121 | [db].count | FAILED | not authorized on [db] to execute command { count: "listings", query: {} } (13) | 0.0021065790000000004s
背景 托管在Digital Ocean,一键部署Dokku
独库版本:0.6.4 MongoDB:3.2.6 Ruby:2.2.4 Rails4.2.6
我已将用户(使用 DbOwner)添加到 MongoDB,同样添加到 mongoid.yml。
这里是mongoid.yml
production:
clients:
default:
database: sample
hosts:
- ip:4121
user: "user"
password: "password"
options:
read:
mode: :primary
max_pool_size: 5
我不知道这是否能解决您的问题,但一般的建议是,不要一键部署 dokku。启动一个 droplet 并手动安装 dokku,它也不需要太多的努力。
一键部署会产生不需要的配置错误。如果你想做一些 RnD 并尝试一下,建议采用这种方法。
dokku一键图片一直正常,没有问题
你安装了dokku的mongodb插件了吗? https://github.com/jeffutter/dokku-mongodb-plugin
如果您已经安装了插件,则无需上传 yml 文件,您只需 运行 服务器中的 link 命令
mongodb:create <app>
mongodb:link <app> <database>
或者您可以在同一命令中创建和 link
mongodb:create <app> <database>
好的。我找到了解决这个问题的方法,我想我会关闭这个循环并节省一些 hours/days 试图解决这个问题的人。
基本上,来自数字海洋的一键式确实有效!
但是您需要在 mongoid.yml 中添加 URI 并删除数据库、用户和密码。
要生成 URI,请在您的 ssh 终端控制台中执行以下操作:
dokku mongo:info <<db name>>
使用屏幕上显示的内容更新 uri 值。
production:
clients:
default:
uri: <<URI>>
options:
read:
mode: :primary
max_pool_size: 1