我需要向sqlalchemy的
create_engine
函数,以便ssl授权我与aws rds的数据库连接。
here
我是说,
here
和
here
建议我使用sqlalchemy的
connect_args
传入我的自定义关键字参数。我试过:
engine = create_engine(os.environ['DB_URI'], connect_args={'ssla':'amazon-rds-ca-cert.pem'})
但是,我下面的字体错误,这是相同的错误,其他海报说
连接参数
为他们修复:
TypeError: 'ssla' is an invalid keyword argument for this function
看来我做得很对。我还尝试在连接字符串中传递关键字参数:
mysql://name:password@localhost/test?sslca=amazon-rds-ca-cert.pem
并更改关键字参数的名称,使其与
sqlalchemy docs
:
db = create_engine('mysql://name:password@localhost/test', connect_args = {'argument2':'bar'})
然而,仍然没有运气。似乎这个错误是mysqldb在错误消息中抛出的,所以这可能是一个错误?
File "/Users/tobyweed/workspace/ftm/live-event-market/server/serverenv/lib/python2.7/site-packages/sqlalchemy/engine/default.py", line 411, in connect
return self.dbapi.connect(*cargs, **cparams)
File "/Users/tobyweed/workspace/ftm/live-event-market/server/serverenv/lib/python2.7/site-packages/MySQLdb/__init__.py", line 86, in Connect
return Connection(*args, **kwargs)
File "/Users/tobyweed/workspace/ftm/live-event-market/server/serverenv/lib/python2.7/site-packages/MySQLdb/connections.py", line 204, in __init__
super(Connection, self).__init__(*args, **kwargs2)
TypeError: 'ssla' is an invalid keyword argument for this function
但是,我没有安装mysqldb,所以使用它的必须是sqlalchemy。我有最新版本的sqlalchemy(1.2.8),所以不可能是这样。
请帮忙!