如果我的数据库在亚马逊 AWS 上没有名字怎么办?

问题描述 投票:0回答:0

我正在尝试解决为什么我无法连接到 AWS 上的 postgresql 数据库实例。

我正在制作一个烧瓶应用程序并通过 SQLAlchemy 连接:

from dotenv import load_dotenv
import os
from sqlalchemy import text
from flask_sqlalchemy import SQLAlchemy

load_dotenv()

app = Flask(__name__)

app.config["SQLALCHEMY_DATABASE_URI"] = os.getenv("SQLALCHEMY_DATABASE_URI")
app.config['SQLALCHEMY_ECHO'] = True
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

db = SQLAlchemy(app)

with app.app_context():
    try:
        print("trying...")
        # db.session.execute('SELECT 1')
        db.session.execute(text('SELECT 1'))
        print('\n\n----------- Connection successful !')
    except Exception as e:
        print('\n\n----------- Connection failed ! ERROR : ', e)


if __name__ == '__main__':
    app.run(debug=True)

在 AWS 的postgresql 文档 上说“在配置选项卡上,记下数据库名称。如果您在为 PostgreSQL 实例创建 RDS 时创建了数据库,您会看到数据库名称下列出的名称。如果您没有创建数据库,数据库名称显示破折号 (-)。”

很好,所以我没有创建名称,但是,这对我的 URI 有何影响?我需要设置名称吗?我可以使用破折号吗?我可以将其留空吗?在 AWS 的修改数据库选项卡上,我看不到更改名称的选项。

我的 URI 目前采用这种形式:

SQLALCHEMY_DATABASE_URI=postgresql://<username>:<password>@<host>/<database_name>

我目前收到此错误:

Connection failed ! ERROR :  (psycopg2.OperationalError) connection to server at ... (...), port 5432 failed: Operation timed out
    Is the server running on that host and accepting TCP/IP connections?

非常感谢。

postgresql amazon-web-services flask-sqlalchemy
© www.soinside.com 2019 - 2024. All rights reserved.