Я успешно выполнил соединение с моим приложением python на сервере mysql, следуя https://dev.mysql.com/doc/connector-python/en/connector-python-connectargs.html
Проблема в том, что я использую 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 9 июля 2015 г. Что мне делать, чтобы 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()
Потеряв много часов, я наконец выяснил эту проблему. Проблема очень проста. Я использовал pycharm и загрузил неправильный sql-коннектор, который поддерживал только tls1. Захватив mysql-connector-python с сайта mysql, я получил правильную версию 8.0.12
Поэтому в будущем проверьте всю версию программного обеспечения, которое вы используете лучше.