我正在尝试解决为什么我无法连接到 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?
非常感谢。