首页 > 解决方案 > 将 tls1.2 与 python 3.5 和 mysql 服务器一起使用

问题描述

我已经按照https://dev.mysql.com/doc/connector-python/en/connector-python-connectargs.html从我的 python 应用程序成功连接到 mysql 服务器

问题是我使用 tls 版本 1。但我想至少使用 tls 1.2

在 mysql 服务器上,我已设置为仅使用 tls1.1 和 1.2。当我尝试连接到 mysql 时,python 抱怨版本错误。

mysql.connector.errors.InterfaceError: 2055: 
Lost connection to MySQL server `at '192.168.99.100:3306',`
 system error: 1 [SSL: WRONG_VERSION_NUMBER] wrong version number (_ssl.c:1045)

print(ssl.OPENSSL_VERSION) 向我展示了 OpenSSL 1.0.2d 2015 年 7 月 9 日我应该怎么做才能让 python 3.5 使用 tls1.2

我使用的代码

from tkinter import *
import mysql.connector
from mysql.connector.constants import ClientFlag
from datetime import datetime
import ssl
print(ssl.OPENSSL_VERSION)
config = {
    'user': 'user',
    'password': 'password',
    'host': '192.168.99.100',
    'database' : "pizza",
    'client_flags': [ClientFlag.SSL],
    'ssl_ca': 'C:\\Users\\Linux\\PycharmProjects\\Kassa\\ca-cert.pem',
    'ssl_cert':'C:\\Users\\Linux\\PycharmProjects\\Kassa\\client-cert.pem',
    'ssl_key':'C:\\Users\\Linux\\PycharmProjects\\Kassa\\client-key.pem'
}
mydb = mysql.connector.connect(**config)
mycursor = mydb.cursor()

标签: mysqlpython-3.xtls1.2

解决方案


在浪费了很多时间之后,我终于找到了问题所在。问题很简单。我使用了 pycharm 并下载了错误的 sql-connector,它只支持 tls1。通过从 mysql 网站获取 mysql-connector-python,我得到了正确的版本 8.0.12

所以为了将来,最好检查你使用的所有软件版本。


推荐阅读