gpt4 book ai didi

python - Heroku MongoHQ 插件和 PyMongo -- OperationFailure : database error: unauthorized

转载 作者:IT老高 更新时间:2023-10-28 13:28:43 26 4
gpt4 key购买 nike

我在使用 MongoHQ Heroku 插件时遇到问题。我的应用程序在本地工作,并且 os 变量在 Heroku 上存在且格式正确。但是,当我尝试访问数据库时,它会引发错误:OperationFailure: database error:未经授权的db:my_database ns:my_database.cars lock type:0 client:128.62.187.133。如果我尝试从 MongoHQ 硬编码连接字符串并在本地运行,我会得到同样的错误。

我的应用如下:

import os
import datetime
from flask import Flask
from flask import g
from flask import jsonify
from flask import json
from flask import request
from flask import url_for
from flask import redirect
from flask import render_template
from flask import make_response
import pymongo
from pymongo import Connection
from bson import BSON
from bson import json_util

app = Flask(__name__)
def mongo_conn():
# Format: MONGOHQ_URL: mongodb://<user>:<pass>@<base_url>:<port>/<url_path>
if os.environ.get('MONGOHQ_URL'):
return Connection(os.environ['MONGOHQ_URL'])
else:
return Connection()


@app.route('/', methods=['GET', 'POST'])
def hello():
# Get your DB
connection = mongo_conn()

db = connection.my_database

# Create an object
car = {"brand": "Ford",
"model": "Mustang",
"date": datetime.datetime.utcnow()}

# Get your collection
cars = db.cars # crashes
# Insert it
cars.insert(car)
...

编辑:MongoHQ 支持帮助了我。问题是我调用的是我的数据库 my_database 而不是 MongoHQ 插件给我的实际数据库名称。例如,db = connection.app52314314。这个改变解决了它。

最佳答案

您可能需要在连接后直接对数据库运行 authenticate 命令。

试试这样的:

db.authenticate([USER], [PASSWORD])

如果这不起作用,请随时发送电子邮件至 support@mongohq.com,我们可以帮助您解决特定数据库问题。

关于python - Heroku MongoHQ 插件和 PyMongo -- OperationFailure : database error: unauthorized,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12984577/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com