2016-04-02 82 views
0

我試圖連接與AWS RDS通過SSL燒瓶應用MySQL連接,它的工作原理,當我嘗試使用MySQL客戶端這樣瓶-SQLAlchemy的SSL連接

mysql -u user -h myrds.rds.amazonaws.com -p --ssl-ca=rds-combined-ca-bundle.pem

我我能夠登錄,但是當我與瓶的應用程序嘗試

SQLALCHEMY_DATABASE_URI = 'mysql://user:[email protected]/miro_dev?ssl_cert=rds-combined-ca-bundle.pem'

它給我錯誤

sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) (2026, 'SSL connection error: Unable to get private key')

回答

0

我這樣做:

... 
ssl_args = {'ssl': {'ca': 'YOUR_SSL_CERT_PATH'}} 

db_url = 'mysql://{}:{}@{}/{}'.format(username, password, server, database) 
engine = create_engine(db_url, connect_args=ssl_args, echo=False) 
cnx = engine.connect() 
df = pd.read_sql_table('table_name', cnx) 

而且我的路徑如下類似建議不要輸入:

〜/ ...

但:

/家庭/ YOUR_USER/...

0

我認爲在你的情況下,連接字符串是正確的,你只需要使用ssl_ca選項,而不是ssl_cert

SQLALCHEMY_DATABASE_URI = 'mysql://user:[email protected]/miro_dev?ssl_ca=rds-combined-ca-bundle.pem' 
0

我能夠加入sslmode =驗證-CA & sslrootcert = RDS-聯合CA-bundle.pem

得到這個工作?

這來自postgresql文檔here以及aws docs

如果您不關心驗證rds,則可以將sslmode更改爲require。我從here下載了pem文件。