Как сделать соединение mysql, которое требует CA-CERT с sqlalchemy или SQLObject
Я хотел бы подключиться к базе данных MySQL, которая требует ca-cert. Я могу сделать это с MySQLdb, как показано ниже:
MySQLdb.connect(host = self.host,
port = self.port,
unix_socket = self.unix_socket,
user = self.user,
passwd = self.passwd,
db = self.db,
ssl = { 'cert': self.sslcert,
'key': self.sslkey,
'ca': self.sslca }
Как мне сделать то же самое в SQLAlchemy или SQLObject?
спасибо, Питер!--2-->
4 ответов
create_engine () в SQLAlchemy есть :
connect_args
– словарь опций, которые будут переданы напрямую к DBAPIconnect()
метод в качестве дополнительных аргументов ключевого слова.
чтобы использовать SSL-сертификаты с SQLAlchemy и MySQLdb, используйте следующий код python:
db_connect_string='mysql://<user>:<pswd>@<db server>:3306/<database>'
ssl_args = {'ssl': {'cert':'/path/to/client-cert',
'key':'/path/to/client-key',
'ca':'/path/to/ca-cert'}}
create_engine(db_connect_string, connect_args=ssl_args)
SQLObject (непроверено):
from sqlobject.mysql import MySQLConnection
connection = MySQLConnection(
db=self.db,
user=self.user,
password=self.password,
host=self.host,
ssl_key=self.sslkey,
ssl_cert=self.sslcert,
ssl_ca=self.sslca,
)
по их docs, С SQLAlchemy это create_engine
функция принимает url БД со следующим форматом:dialect[+driver]://user:password@host/dbname[?key=value..]
означает, что вы можете передать ключ ssl, сертификат и ca в качестве пар значений ключей.