我遇到了一个问题,我无法从我的Flask应用程序连接到我的RDS MySQL实例。我正在使用SQLAlchemy,一切都在本地工作,但当我将我的代码推送到AWS时,我收到以下错误:
sqlalchemy.exc.OperationalError
OperationalError: (OperationalError) (1045, "Access denied for user 'db_user'@'xx.xx.xx.xxx' (using password: YES)") None None
现在我知道错误不是安全组问题,因为我能够使用MySQL客户端在本地和实例上进行连接。
答案 0 :(得分:6)
事实证明我没有做错任何事情,这不是AWS或Flask的错误,它严格来说是一个SQLAlchemy错误!事实证明,MySQL连接的URI格式是:
dialect+driver://username:password@host:port/database
我的错误来自于我的密码中带有加号(+)字符因此欺骗了URI格式,以便在方言之前考虑所有内容。使用' +'对于MySQL密码,字符是完全合法的,因此通过MySQL客户端进行连接的原因是正常的。我希望有这个错误的其他人能够找到这个,而不是花费尽可能多的时间来寻找解决方案!