Windows上的Python / MySQL。 问题与openssl

我有一个MySQL服务器设置使用SSL,我也有CA证书。

当我使用MySQL Workbench连接到服务器时,我不需要证书。 我也可以在没有CA证书的Mac上使用Python和MySQLdb连接到服务器。

但是,当我尝试连接使用完全相同的设置Python和MySQL的Windows机器上,我得到访问被拒绝。 看来我需要CA. 当我进入CA时,出现以下错误

_mysql_exceptions.OperationalError: (2026, 'SSL connection error')

我的代码打开连接如下:

 db = MySQLdb.connect(host="host.name", port=3306, user="user", passwd="secret_password", db="database", ssl={'ca': '/path/to/ca/cert'}) 

任何人都可以指出在Windows上的问题是什么? 我相信它与OpenSSL和Python有关。 我从这里安装了OpenSSL。 但是我不认为Python正在使用我安装的这个版本,因为当我使用Python打印版本时,它是不一样的。

这是Python打印的东西。 它仍然不是一个非常旧的版本,应该连接到MySQL时工作

 OpenSSL 1.0.2j 26 Sep 2016 

我真的不习惯使用OpenSSL及其问题。 我已经从字面上尝试了所有在google上find的解决scheme,通过search我得到的错误,你会认为其中一个应该工作。 但没有一个,所以我猜测问题是在我的系统上的OpenSSL和Python。 任何人都知道我应该尽力至less确定确切的问题?

我也不明白如何在没有CA证书的情况下使用Mac / Python或MySQL Workbench连接到MySQL服务器,但是我在Windows中使用Python获取访问被拒绝的错误:/

更新:

Python版本2.7.13

MySQL服务器企业版本5.7.18

我相信你不仅要设定ssl“ca”,还要设定“cert”和“key”

 db = MySQLdb.connect(host="host.name", port=3306, user="user", passwd="secret_password", db="database", ssl={'ca': '/path/to/ca/cert', 'key': '/path/to/key', 'cert': '/path/to/cert'})