Я пытаюсь отправить данные в базу данных mysql на сервере, который имеет --require_secure_transport = ON.
Когда я пытаюсь подключиться к нему с помощью следующего кода
import pandas as pd
import pymysql
from sqlalchemy import create_engine
connect_string = 'mysql+pymysql://{}:{}@{}/{}'.format(user,pw,host,database)
connector = create_engine(connect_string)
df = pd.read_csv('iris.data')
df.to_sql('iris',connector,if_exists='replace',index_label='id')
я получаю следующую ошибку
InternalError: (pymysql.err.InternalError) (3159, 'Connections using insecure transport are prohibited while --require_secure_transport=ON.') (Background on this error at: http://sqlalche.me/e/2j85)
Я искал варианты того, как заставить соединитель использовать secure_transport, но я не смог найти ничего, что работает.
Одно решениея обнаружил, что требуется добавить? ssl = true в конец connect_string
connect_string = 'mysql+pymysql://{}:{}@{}/{}?ssl=true'.format(user,pw,host,database)
Но это привело к следующей ошибке
ca = sslp.get('ca')
AttributeError: 'str' object has no attribute 'get'
Я могу подключиться к базе данных, используя только pymysqlтаким образом
ssl={'ssl': {'key': 'ssl/client-key.pem','cert': 'ssl/client-cert.pem','ca': 'ssl/ca-cert.pem'}}
con = pymysql.Connect(host,user,pw,database,ssl=ssl)
cur = con.cursor()
cur.execute("show tables;")
Но я не могу найти способ реализовать это с помощью коннектора sqlalchemy. У кого-нибудь есть предложения о том, что нужно сделать, чтобы заставить это работать?
С уважением