我用用nginx部署的python框架开发了一个网站,它工作得很好。该网站使用以下URI通过pymysql和MySQL与SQLAlchemy数据库进行交互:
"SQLALCHEMY_DATABASE_URI": "mysql+pymysql://user:password@localhost/database"网站和数据库都托管在AWS EC2服务器中。我试图从我的个人计算机访问数据库,建立与DBeaver的连接。下面的教程将mysqld.cnf文件中找到的绑定地址设置为0.0.0.0:
bind-address = 0.0.0.0但是,这样做会切断网站与数据库的连接。这是在日志中发现的错误:
sqlalchemy.exc.OperationalError: (pymysql.err.OperationalError) (2013, 'Lost connection to MySQL server during query') [SQL: ...]因此,我不能设置绑定地址。当我评论掉这个网站时,它会再次正常工作。如何在允许远程访问数据库的同时使网站工作正常?
虽然我不确定这有什么帮助,但我在AWS安全组规则中启用了到数据库的连接:

任何关于我的问题的帮助或推荐信都是非常感谢的。注意安全!
发布于 2020-03-28 10:15:56
mysql配置可以保持原样。访问协议已经在AWS中定义了。我所缺少的是为数据库配置一个远程用户,将'%‘作为主机(这意味着任何主机都正常)。然后,我在DBeaver中输入了DB连接凭据,它成功了!
我不知道连接有多安全。让用户对任何连接开放可能是有风险的。然而,我对此事不太了解,也无法评估其安全状况。SSL连接可能更安全,但我不知道如何配置它。
https://stackoverflow.com/questions/60887977
复制相似问题