Flask无法连接到RDS MySQL

时间:2019-05-21 11:43:54

标签: python mysql flask flask-sqlalchemy amazon-rds

我在PostgreSQL上使用了flask-sqlalchemy。 现在,我切换到RDS MySQL, 所以我改变了SQLALCHEMY_DATABASE_URI 表格

[
  {
    code: 134,
    bindings: [
      {
        devId: "71156ce8-ac2b-4282-9f5a-10133441057c",
        userIds: ["9d300b89-29c0-45a8-a4d3-019cfc8f1c7b"]
      },
      {
        devId: "ca33efa1-ec27-4ee1-8117-8b8ab29c1790",
        userIds: ["73e5af2f-fe01-41a3-bebd-6bab895cab58"]
      },
      {
        devId: "a03f5fbd-f279-4182-bfb6-33aba9de5751",
        userIds: ["dc0c5e59-ef1a-44b9-843b-a4ea73bbed2e"]
      }
    ]
  }
]

db.trigger.aggregate([
  { $match: { _id: "134" } },
  { $unwind: "$bindings" },
  { $match: { "bindings.devId": "ca33efa1-ec27-4ee1-8117-8b8ab29c1790" } },
  { $project: { _id: 0, dateset: 1 } },
  { $out: "bindings" }
]);

在此之后,我像这样初始化应用

app.config['SQLALCHEMY_DATABASE_URI'] = 'postgres://**************'

但是该应用无法连接到服务器。 (我确认用户名,密码,端点,端口是正确的,并已从mysql工作台连接)

我读了这个问题。 Switching from SQLite to MySQL with Flask SQLAlchemy 所以我安装了pymysql,但是没有用。

当我的应用尝试连接数据库时,显示此错误消息。 似乎psycopg2被调用了,尽管我使用的是mysql。

能给我一些建议吗?

app.config['SQLALCHEMY_DATABASE_URI'] = "mysql+pymysql://{username}:{password}@{endpoint}:{port}?charset=utf8"

2 个答案:

答案 0 :(得分:0)

该错误消息建议使用调试器断点或仅通过打印检查连接字符串。

print(app.config['SQLALCHEMY_DATABASE_URI'])

答案 1 :(得分:0)

它可能是uri格式:“方言+驱动程序://用户名:密码@主机:端口/数据库” 在MySQL“ mysql:// username:password @ localhost:### #/ mydatabase” https://flask-sqlalchemy.palletsprojects.com/en/2.x/config/#connection-uri-format