【发布时间】:2020-11-23 10:41:54
【问题描述】:
我有一个 Flask 后端,我正在尝试同时将 MySQL 连接到 MongoDb。但是,我经常遇到这个错误。 我也在使用在 db 文件中实例化的 sqlalchemy。对 MySQL 服务器的请求很好,但是对 mongodb 的请求返回给我以下错误:
MongoDB 目前托管在 EC2 上,而我的烧瓶应用程序是本地的。
pymongo.errors.ServerSelectionTimeoutError:
app.py:
from flask import Flask
from flask_restful import Api
from db import db
from books.resource import Review, ReviewList
from flask_mongoengine import MongoEngine
import setting.mongo_setup as mongo_setup
app = Flask(__name__)
# mongo_setup.global_init()
# app.config.from_pyfile('setting/mongo_setting.py')
app.config['MONGODB_SETTINGS'] = {
'db': 'meta',
'host': 'XXXXXXXX',
'port': XXX
}
app.config.from_pyfile('setting/sql_setting.py')
mongo_db = MongoEngine()
mongo_db.init_app(app)
db.init_app(app)
api = Api(app)
api.add_resource(Review, '/review/')
if __name__ == '__main__':
app.run(port=5000, debug=True)
sql_setting.py:
import os
MYSQL_HOST = 'XXXXXXX'
MYSQL_PORT = XXXXX
DBNAME = "XXXXX"
MYSQL_USERNAME = "XXXXXX"
MYSQL_PASSWORD = "XXXXXX"
MYSQL_URI = "mysql+pymysql://%s:%s@%s:3306/%s" % (MYSQL_USERNAME, MYSQL_PASSWORD, MYSQL_HOST, DBNAME)
SQLALCHEMY_TRACK_MODIFICATIONS = False
SQLALCHEMY_DATABASE_URI = MYSQL_URI```
【问题讨论】:
-
您确定 ec2 实例是公开的吗?您应该尝试通过 mongo cli 工具连接到 mongodb 实例一次
标签: python mongodb flask flask-sqlalchemy mongoengine