sim*_*oes 2 amazon-web-services amazon-rds flask flask-sqlalchemy amazon-elastic-beanstalk
我遇到了一个问题,我无法从我的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
Run Code Online (Sandbox Code Playgroud)
现在我知道错误不是安全组问题,因为我能够使用MySQL客户端在本地和实例上进行连接.
好吧,事实证明我没有做错任何事情,这不是AWS或Flask的错误,它严格来说是一个SQLAlchemy错误!事实证明,MySQL连接的URI格式是:
dialect+driver://username:password@host:port/database
Run Code Online (Sandbox Code Playgroud)
我的错误来自这样一个事实,即我的密码中带有加号(+)字符,因此欺骗了URI格式,以便在方言之前考虑所有内容.使用"+"字符对于MySQL密码是完全合法的,因此通过MySQL客户端进行连接的原因是正常的.我希望有这个错误的其他人能够找到这个而不是花费尽可能多的时间来寻找解决方案!