将 SSL 与 SQLAlchemy 结合使用

新手上路,请多包涵

我最近将我的项目更改为使用 SQLAlchemy,并且我的项目运行良好,它使用了外部 MySQL 服务器。

现在我正在尝试使用具有 SSL CA 的不同 MySQL 服务器,但它无法连接。

(它确实使用 MySQL Workbench 连接,所以证书应该没问题)

我正在使用以下代码:

 ssl_args = {'ssl': {'ca': ca_path}}
engine = create_engine("mysql+pymysql://<user>:<pass>@<addr>/<schema>",
                        connect_args=ssl_args)

我收到以下错误:

无法连接到“\addr\”上的 MySQL 服务器([WinError 10054] 现有连接被远程主机强行关闭)

有什么建议么?

原文由 Shahaf Finder 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 856
2 个回答

我将 DBAPI 更改为 MySQL-Connector,并使用了以下代码:

 ssl_args = {'ssl_ca': ca_path}
engine = create_engine("mysql+mysqlconnector://<user>:<pass>@<addr>/<schema>",
                        connect_args=ssl_args)

现在它起作用了。

原文由 Shahaf Finder 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果您只是从具有 ssl 连接的客户端计算机进行连接(因此您无权访问证书和密钥),则可以简单地将 ssl=true 添加到您的 uri。

编辑:

例如: mysql_db = "mysql+mysqlconnector://<user>:<pass>@<addr>/<schema>?ssl=true"

原文由 Ben 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题